There is a tools that system administrators use on networks known as UPHclean. Although I believe this tool was designed for administration of user profiles on domains it will do a lot of good cleaning up the profile on your Windows XP box at home.
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.
You can download UPHclean directoly from Microsoft.