Windows has the ability to adjust the clock's speed to keep the time 'accurate' when it is configured to sync to other servers - sometimes this goes a bit screwy.
Probably the easiest way to deal with the problem is to configure windows to resync its clock to an internet atomic clock on a regular basis. You can download loads of little programs that can do this, or you can get windows to do it (the stuff is built in already). The advantage of getting windows to do it, is that the automatic speed adjustment is also automatically configured, in case you don't connect to the internet for a while.
To activate the windows time sync open a 'command prompt window' and enter the following commands:
net stop "windows time"
net time /setsntp:tick.gpsclock.com
w32tm -once -period 65532
net start "windows time"
If typing all that in is too much effort then download and run
this script, which will do it all automatically.
The command script above works on Windows 2000. I don't have XP, but it should work in exactly the same way. Once activated Windows will resync every 45 minutes, until it gets 3 good locks in a row - once stable it will switch to 3 times a day.