I use Diskeeper 2008, it automatically defrags your hd and files as and when needed. It will even defrag usb memory sticks

and defrags any new hd's when they are detected, dont have to touch anything.
even if your Instaling something then it defrags them as you Install it. when your copying files from 1 hd to another it defrags them.
I never have to defrag my hd again

its all done for me. 1 of the best i think.