Defragmentation can be affected by corruption. While using a different defragmenter is a perfectly valid solution (and perhaps even a better solution since some, I too like and use Defraggler, are better than the one that comes with Vista), the one with Vista still should work properly and changing programs doesn't address the reason Vista's program isn't working properly. Let's check and try to repair any corruption on your hard drive.
Go to Start / All Programs / Accessories / Command prompt and right click on command prompt and click run as Administrator.
Type sfc /scannow and enter and let it run. It will scan and try to fix some of your system files. Hopefully it will complete with no corruption it could not repair (if there is such corruption post back here or try to analyze it to find the problem file(s) using http://support.microsoft.com/kb/928228. Try to attach the report (you may need to copy it to your desktop before it will permit you to attach it) here so we can see if they can be repaired with good copies from the installation disk (unless there are too many).
While in Command Prompt, type chkdsk /f /r and enter and let it run. It will want to schedule itself to run at the next restart. Answer yes and then reboot to run the program. It will scan and try to fix any corruption or bad sectors on your hard drive and mostly remove that as a potential cause.
If that doesn't work, then please post any error messages from the Event Viewer concerning defragmentation (Start / Control Panel / Administrative Tools / Event Viewer). Here's how to use Event Viewer: http://www.petri.co.il/vista-event-viewer.htm. Look in the System section. If you find any, and there should be some if it is failing to complete, then click on them for more details, copy those details, and post them here as they may help us identify the cause.
These options only apply if you want to try to discover what's causing Vista's defragmentation program to fail and see if that can be repaired. If you try one of the other programs and it works and you're satisfied with it and don't really care any more about Vista's program or the cause of the problem, then you can ignore these options and just use the new program from now on - but I personally would check at least as far as I've suggested above to try to confirm that it isn't a symptom of a bigger problem. But that decision is entirely yours. If the other program works, then you have a way to defragment which was most likely the main objective of this thread and the apparent problem is resolved. You can worry about other problems if and as any appear - remembering then that this problem exists and may be related.
I hope this helps.
Good luck!