I've had a look at winapp.ini since I noticed that some entries never find anything to delete or don't even show up, although I have that application installed. I'm using a German Windows XP.
In winapp.ini there are many detection and removal paths defined like "%userprofile%\Application Data\..." or "%userprofile%\Local Settings\...". This however does not work for localized verisons of Windows where these paths can have different names. The German version for example uses "Anwendungsdaten" instead of "Application Data" and "Lokale Einstellungen" instead of "Local Settings".
Here is a small translation table for German Windows:
"%userprofile%\Application Data\..." ____________<--------> "%userprofile%\Anwendungsdaten\..."
"%userprofile%\Local Settings\..." ______________<--------> "%userprofile%\Lokale Einstellungen\..."
"%userprofile%\Local Settings\Application Data\..." <--------> "%userprofile%\Lokale Einstellungen\Anwendungsdaten\..."
(sorry for the _____, but I couldn't get a table otherwise)
To provide support for all localized versions of Windows, I think it would be better, if CCleaner didn't use the environment variables, but rather determine these paths by the appropriate calls to the windows api. So you can always get the correct paths, even when someone completely modified their profile paths (which some people do for security reasons) or if their (server-based) profiles are divided on different servers. You then could replace those parts of the paths from the winapp.ini file with plaeholders and fill these with the API-determined values.