When the work is done the system or service process is responsible for releasing handles it has to the user profile hive.If this is not done by the service as the user logs off the profile cannot be unloaded.The software runs as a background service and kicks in during logout and makes sure that the registry is closed correctly. Here is some information from the included in the download.UPHClean is a service that once and for all gets rid of problems with user profile not unloading.
Or to put it differently: How can we ensure a specific user will receive a new, clean profile when he logs himself in the regkey, it is a per-machine configuration setting valid for all users logging on to your terminal servers, and thus probably undesirable.
You are having profile unload problems if you experience slow logoff (with Saving Settings for most of the time while logging off), roaming profiles that do not reconcile, or the registry size limit is reached.
Many system and service processes do work on behalf of users.
This problem in code can be caused by improper coding either in Microsoft software or 3rd party software (e.g. With the information provided by the system there is no way to find out what software needs to be corrected to allow profiles to unload.
When you log off of Windows XP, and your roaming profile is stored on server that uses quotas, you receive: Windows cannot update your roaming profile.