I use a little program called 'contig' to defrag, it's a little less user-friendly than the Windows version, but IMO it's better and faster. Download it from here:
http://www.sysinternals.com/Utilities/Contig.html and then extract the contig.exe file and save it to your c:\windows or c:\winnt direcory. Then at the command prompt you type:
contig c:\*.* -s [Return]
To defragment your c:\ drive, changing the drive letter to do other drives. I use it at home and at work and I'm convinced it's better - I've used various tools to analyse fragmentation before and after using it and they all report that it's done it's job.
The other sysinternals app I use is pagedfrg which does a defragment of your system files during the boot sequence, ie registry files, page fil etc.