Windows 7: System clock 2 hours behind on every boot

Click on the clock and choose "Change date and time settings..."

Click the "Internet Time" tab. Is it set up to synchronize the time with time.windows.com? If it is, try unchecking that box, saving the settings, and rebooting to see if that fixes your problem. If it isn't checked already, try checking it and making sure it is set to time.windows.com.

Here is an article that may explain the problem:
Windows/Ubuntu Dual Boot-Setting time in one changes time in the other

The BIOS is the base clock and keeps time when the OS is off.

He boots into Windows, and the time is out. He either fixes it by hand or via time server, and Windows helpfully 'fixes' the time on the hardware clock on the motherboard in BIOS. Then he reboots into Ubuntu, and it picks up the time from the motherboard and sets the OS to that time. It's out by 4 hours because Linux expects the hardware clock to be UTC rather than EDT. In Ubuntu he either fixes the time manually or by ntp time server, then when he shuts down Linux helpfully 'fixes' the hardware clock. And around we go...

Note you don't get this when you run one or the other virtualized - just when you dual boot.

Does that explain it better?

So it seems that for dual booting Windows and Ubuntu, both need absolutely to use a time server.

See this for Windows : Dealing With Windows Vista Time Sync Problems.