Below is some advice i got from a guy called 'Digerati' a Microsoft MVP on w7forums.com
Make of it what you will...
The alternative defraggers are, at best, a waste of disk space, at worse, a waste of money too. It is important to note that if you need to defrag, then defragging is simply treating the symptom, and not the cause of the problem. The cause of the problem is the USER has failed to keep a sufficient amount of "free" disk space available. And the cure is to free up or buy more disk space.
Whenever you defrag a drive, the second, and I mean that literally, the second you start to use that drive again, fragmentation starts again. Temporary Internet files, cookies, OS temp files, revised documents and other files, now a different size, will be moved and/or split, starting the fragmentation process again. For this reason alone, it is pointless to use a more aggressive program to eke out one more percentage point of defragging. All that extra effort is lost, almost immediately.
The absolute best way to minimize the adverse affects of fragmentation is to ensure you have ample free space on the drive. If you are defragmenting because you are low on disk space, it is senseless, and counterproductive to download yet another program that takes up more space.
To optimize defragging, boot into Safe Mode, run Windows Disk Cleanup to purge your system of 1000s of cookies and temporary files. Reboot into Safe Mode again to delete any files Disk Cleanup (or CC) could not delete while running, then run defrag.
Note: Do NOT run any defragger (including Windows 7 defragger) automatically via a schedule. The scheduled defragging will be counterproductive due to the 1000s of temp files on the disk.
Note 2: I am not saying the alternative defraggers are no good, I am just saying they are not needed, and are a waste of disk space. Windows' own is just fine, and already there.