Try to check the timezone at your server. Incorrect setting may result this way.
I am pretty sure changing the server timezone to match the forum's default timezone would make the problem go away. Changing the server timezone, however, is not a practical solution for some.
The thing is, many people have servers in other countries because it is less expensive. For example, my forum caters to UK users, so the forum timezone is set to GMT, but the server is a cheap box in California, so the server timezone is set to 8 hours earlier (and should be, as it also runs other services on the box catering to US users).
For an official fix to this issue, I think that when calculating the cookie expiry times, the difference between the forum default timezone and the actual timezone of the server needs to be taken into account.
I'll use my "Remember me" hack in the meantime as my head hurts!