Rock makes a good point about dual booting. I suspect this is where your problem lies. You actually have 2 clocks to maintain, the CMOS or 'hardware' clock (battery powered) and the OS or 'system' clock which dies every time you reboot right? Then when you boot again the hardware clock resets the system clock.

In Linux you can set the clock to UTC/GMT time OR your own local time zone. If set to UTC/GMT then daylight savings will be adjusted automagically. Unfortunately DOS is not as smart as Linux (tell you something else you didn't know eh?)and can only think in local time which is what creates these time discrepancies. So I would set your Linux clock to Local time if you are dual booting windows. That should clear things up.