Bah. Cookie, there's one thing you don't understand about it. We can't store the value of DST for EVERY user for EVERY post. Thats x*y = huge z. You don't understand how the php
time() function works - it stores the time since unix epoch. It does not store GMT time. Its stored as a numerical (bigint) value in the database. Time since epoch is like GMT time, but it is not GMT time.
Here's the solution i've thought up. A new column in the users table along side the 'dst' one, called 'dstchanged' which stores the time the dst value was last changed.
When calculating post/time stamps it compares the values and if time > dstchanged & dst = on, we'll change the value accordingly, else we don't do anything to the time.. Something like that.