There is a new article in the hard-to-discover http://support.microsoft.com world, about various improvements of defrag in Vista. In summary: defragmentation is now performed automatically by default (at 1 AM on every Wednesday - that is, if your laptop is not powered off) and it works nicely in an incremental manner - no need to restart a full new defrag every time.
Here is an excerpt:
By default, the defrag tool only defragments files smaller than 64 megabytes (MB). Therefore, files larger than 64 MB are not moved unnecessarily. You can use the -w parameter to tell the defrag tool to defragment all files, regardless of size.
In earlier versions of Windows operating systems, if the defrag engine was in the middle of a large move request, it could take lots of time to cancel defragmentation. In Windows Vista, the defrag engine processes input and output requests in smaller portions. Therefore, you can avoid situations where the defrag engine is busy with processing large move requests when you cancel a defragmentation session.
Low priority defragmentation
The defrag engine in Windows Vista does not affect the performance of other processes that are running on the computer. Other processes are not affected because defragmentation runs as a low priority process. And, defragmentation uses only minimal CPU resources and memory resources. If the system is using lots of CPU resources and memory resources, the defragmentation process may take a longer time to finish.
Ability to defragment volumes with less free space
You can defragment volumes in Windows Vista when volumes have less free space than is the case in earlier versions of Windows operating systems.
In some defragmentation modes in Windows Vista, defragmentation of a volume is two or three times faster than defragmentation in earlier versions of Windows. Windows Vista uses significantly improved algorithms that move files toward the front of the hard disk. In earlier versions of the defrag engine, the defrag engine defragmented data at the end of the hard disk before the defrag engine defragmented the data toward the beginning of the hard disk.
You can now use Task Scheduler to schedule defragmentation. Therefore, you do not have to manually start defragmentation. By default, a task is created and is set to run at 1 A.M. on every Wednesday. If the computer is turned off or if the task does not run at the scheduled time, the task will run the next time that the computer is idle.
In shadow-copy-aware defragmentation, defragmentation uses Volume Shadow Copy Service (VSS) in-box software to optimize defragmentation. The VSS software minimizes copy-on-write change blocks. Shadow-copy-aware optimization slows down filling the difference area. This kind of optimization also slows down the reclaiming of old snapshots during defragmentation.
Master File Table (MFT) defragmentation
If the MFT is spread into multiple fragments, the defrag engine can combine the MFT fragments during defragmentation.