Now I've found a new one called UltraDefrag and it's FOSS (free and open source software). I couldn't really find anything I didn't like about it.
I found 3 versions of it at the download page. I believe the i386 version is the one most of you should use. It looks like there are versions for AMD and 64bit as well.
Quote from the website
UltraDefrag is powerful Open Source defragmentation tool for Windows NT. It is very fast, because the defragmenting is done by kernel-mode driver. They are three interfaces to them: graphical, console and native. The GUI is very useful, because it represents your filesystem visually as a color coded cluster map. The console is another option for those that prefer the command line. It is also allows you to run UltraDefrag from the task scheduler and scripts. Finally, the native executable will run at boot time in a manner similar to chkdsk.