| I would recommend the program, but with reservations
| only on the experience and knowledge of the user.
| --
Better yet, don't use such nonsense at all. People
who don't know how their car works buy an occasional
bottle of something like STP to give their car a "treat"
in hopes it will run better. ("Power users" change the
air filter and the Christmas tree air freshener.

People
who don't know how their PC works download (or worse,
buy) system cleaners and tune-up junkware.
But don't take my word for it. Look at what programs
like CCleaner purport to do and consider what the value
of those actions is:
* Browser temp files can be deleted in the browser. Likewise
with system temp files. (Though with XP temp file
paths are a mess. I keep a VBScript on my Desktop
to check a half-dozen different folders, where there
was only 1 in Win9x.) My Computer -> right-click
drive Shortcut -> click Disk Cleanup is another option.
* Registry cleaners are never a good idea. Their authors
advertise speeding up Windows and fixing errors. But
if one looks at what actually gets removed...
Settings for uninstalled software: Good to clean up,
but harmless. And removing 1 KB of data from a 10 MB
database is not going to speed up Windows. If you
use Sysinternals tools to watch Registry access you'll
see that Windows itself is incredibly sloppy and wasteful.
Just changing a setting in IE can result in an astonishing
5,000 Registry accesses. Cleaning up a tidbit here or
there is meaningless when you're talking about shaving
a few nanoseconds off of a 50 millisecond operation
that involves 5,000 accesses. That's all still way below
the human perception threshold of "instant".
COM entries: Most Registry checkers will look through
HKCR\CLSID\ for non-existent, registered libraries.
If those libraries don't exist then probably no software is
trying to load them, thus entries are harmless. If software
does try to load a missing COM library then you'll find
out soon enough. Whether the entry is "cleaned" or
not you're going to get a "Failed to Create Object"
message. And wrong entries of any kind
are not causing a problem if nothing ever reads them.
File extension data, app. paths, etc.: Again, if it's going
to cause a problem that problem will happen either way.
If XYZ is supposed to handle .xyz files, and XYZ was
uninstalled, you're going to have a problem when you
try to open an xyz file. Wouldn't it actually be better
to see "C:\Program Files\XYZ\xyz.exe does not exist!"
than to see, "We have no idea what this file is. What
do you want to use to open it?"
It's fine to clean up unused Registry entries, but it's
not going to help Windows run faster, and usually it's
not something to be done in an automated way.
Far better to empty temp files, empty the IE cache
if IE is used, and set the cache limit to just a few MB
(that's one of the worst culprits for slowing down
Windows because IE is intimately tied into Explorer).
Also disable any unneeded services and startup programs.
In a typical PC there are several dozen services and a
half-dozen programs running at startup that have no
business running.