Below is how you can setup your XP box to get it's time from an external source. I will try and get a good list of external sources, unless someone else has a good list.
How to Synchronize an Internal Time Server with an External Source
1. Click Start, point to All Programs, point to Accessories, and then click Command Prompt.
2. Type the following line, where peerlist is a comma-separated list of Domain Name System (DNS) names or IP addresses of the appropriate time sources, and then press ENTER:
w32tm /config /syncfromflags:manual /manualpeerlisteerlist
3. Type w32tm /config /update, and then press ENTER.
? The most common use of this procedure is to synchronize the internal network's authoritative time source with a very precise external time source. However, you can run this procedure on any Windows XP-based computer.
? If the computer cannot reach the servers, the procedure does not succeed and an entry is written to the Event log.
? You can use computers on the Internet to provide accurate time information. For example, use the National Institute of Standards and Technology (NIST), which provides the NIST Network Time service.