I used to recommend Diskeeper without hesitation, but now I'm not so certain. Just yesterday, a run of Diskeeper's boot-time defragmentation corrupted my Windows XP installation, forcing me to reinstall. Luckily, I didn't lose any data. The exact same thing also happened several months ago. Weird thing is, I've done the boot-time defrag about 10 times over the last 9 months and problems are actually very rare, aside from the two instances of data corruption. Also, regular defrags are fast and have never caused any issues at all (I used to run it every day, but now I do it twice a week).
I'm currently seeking a new option for defragging (I heard O&O Defrag is good), but I'll continue to use the regular Diskeeper defrag in the meantime. I just won't be using the boot-time defrag option.