That was I thought, but check out the php.net
setcookie function
http://ca3.php.net/manual/en/function.setcookie.php
the bottom of that page there are notes like this
greg-php at elysium dot ltd dot uk
18-Dec-2001 12:11
As already stated above, one reason for the failure of expiration-based cookies can be an incorrect local time on the CLIENT. Two more points about this:
Not all browsers suffer from the problem. Netscape doesn't, and it appears to do the sensible thing: it compares the cookie expiry time with the server's notion of the current time, and then adds the difference onto its own notion of the time for storage.
Local time includes TIMEZONE. A cookie expiring at 2 p.m. GMT has already expired at 11 a.m. on the same day if the timezone is (correctly or incorrectly) set to EST. Beware users whose computers were preinstalled in another country and who have only corrected the visible clock time!