If your Windows XP takes a very long time to shut down, you can try User Profile Hive Cleanup Service provided by Microsoft (yes, Microsoft). The users at digg claimed that it really helps to shorten shut down time. I remember it took a very long time to shut down before I formatted and reinstall my PC not too long ago.
What will it do to your windows?
The User Profile Hive Cleanup service helps to ensure user sessions are completely terminated when a user logs off. System processes and applications occasionally maintain connections to registry keys in the user profile after a user logs off. In those cases the user session is prevented from completely ending. This can result in problems when using Roaming User Profiles in a server environment or when using locked profiles as implemented through the Shared Computer Toolkit for Windows XP.
On Windows 2000 you can benefit from this service if the application event log shows event id 1000 where the message text indicates that the profile is not unloading and that the error is "Access is denied". On Windows XP and Windows Server 2003 either event ids 1517 and 1524 indicate the same profile unload problem.
To accomplish this the service monitors for logged off users that still have registry hives loaded. When that happens the service determines which application have handles opened to the hives and releases them. It logs the application name and what registry keys were left open. After this the system finishes unloading the profile.
Note that you are required to have a genuine windows to download it. Besides Windows XP, you can use it on Windows 2000, Windows NT and Windows Server 2003 as well.
If my article helped you solved your problem, consider buy me a beer!