NTRegOpt is a really good programme. I couldn't find any freeware but there are these.
click here for Registry Compactor. (Despite the name it defragments as well.)
click here for Registry Defragmenter and Compactor.
You might be better paying a bit extra and getting something like TuneUpUtilities 2004 from
click here This includes a Registry Defragmenter.
Despite calling themselves Registry Defragmenters I'm not sure they do much more than NTRegOpt. Compacting the registry, by getting rid of the free space within it, is the beneficial thing, from what I've read.
You might also want to take a look at the Sysinternals site as I remember there is a free defragmentation programme for the registry and page file for advanced users.