Erase just the free space on my hard drive
Solution 1:
I have seen many utilities that can overwrite just free space, but I have never had good experiences and like you, they seem to fail.
What I recommend you do is use some sort of backup / imaging software and take a copy of everything on your machine then use something like DBAN to truly wipe the hard drive then restore your backup to the drive.
This should do the job fine!
Solution 2:
Sysinternals SDelete. All it does is generate a free-spaced sized file full of junk (or zeros, depending on settings). It gets most all of the free space (I imagine it must miss a few blocks), and it's free. If you put it into the mode where it just writes zeros (instead of multi-pass junk), it's not too slow.
Solution 3:
Ccleaner also has a "Wipe free space" facility. I presume that it does your job, and I presume that it leaves everything intact. But I don't know how secure it is.
"You can set CCleaner to wipe the free areas of your hard disk so that deleted files cannot be recovered."
Solution 4:
All you need to do is create a bunch of big files that take up all of your free space, then delete them. I'm pretty sure that's how Eraser works. Or if you want random data for some paranoid reason, grab Truecrypt, have it create an encrypted file that's close to the size of your free space (you don't want to fill it all or the computer won't work), and then let it do it's drive randomizer thing.
Solution 5:
Cipher comes as part of Windows XP:
cipher /w:<Drive Letter>:
/W Removes data from available unused disk space on the entire volume. If this option is chosen, all other options are ignored. The directory specified can be anywhere in a local volume. If it is a mount point or points to a directory in another volume, the data on that volume will be removed.