The original XP release actually enforced contact with M$ to "register" all application, even non-M$ apps, and if XP wasn't conntected to the internet, it would force the user to call an 800 number about once every 6 months. At least they've removed that restriction.
We're working on a network monitoring application that reads all net traffic at each router. A couple of us got curious after actually reading the license agreement for some of the information regarding networking. There were restrictions regarding monitoring several very small, specific, groups of packets.
Since we had to add code to ignore these packets, we just had to examine them further to see how we might best identify them to ignore them. At least that's the excuse we used to take a peek. Our release product will ignore these packets, but internally, we have a "pre-beta" version of the code running before that code was added.
When end users started the switch to XP, we decided to use our software to see how useful it might be to our customers, and tried out both versions. To our surprize, we found several packets being sent to the internet from these new XP installs without some of the normal header info.
Further analysis showed that the packets contained a string with the serial number of the application, a long containing a unique ID for the application, and a byte indicating frequency of use (0 = frequent use, 255 = never used). Although there is no identifying information sent, the OS itself is included in the list. About 3 months later, we again saw a rise in the number of packets, except that for apps that had already been transmitted, the data packet was zeroed, except for the frequency of use byte.
We've moved all of our machines back to w2k since then, and aren't seeing any of this traffic anymore.