use the switch /f for defrag (may need multiple passes) and has to be done with dos. as a side note some of the windows data (page files, for example) occupy the middle of the HDD for quicker access. Here is some info I found, a few sites also explain how the os is NOT dependent physically on HD data locales but does so in logical format. Here is something I cut and pasted:
////////////////////////////////
Defrag does not - even if set to "Full defragmentation" - take apart the entire drive it is looking at and re-sort the lot unless it is badly defragmented with a lot of empty spaces. It works out where the clusters belonging to individual files are, and aims to get them contiguous (ie together). It also aims to get the most-used files towards the 'front' of the drive, as that speeds up system working.
Defrag in Windows98 goes further than in Windows95 by noting the most frequently opened programs and assigning them to disk sectors which are accessed fastest. (See Page 2a).
Where Defrag finds that significantly large blocks of clusters together have been deleted, it will take advantage of such chunks of free space in the middle to shift things around to a better order than if there were only a few odd clusters free in which to manoeuvre. So deleting unwanted files (as suggested on Page 1) gives Defrag the opportunity to do a fuller re-sort ending up with a more efficient drive, though it will probably take longer to complete.
Do not worry if Defrag "sticks" at around the 80 to 95% mark. It can take an irritatingly long time to finish sorting the same large block towards the end. And if you have 'View Details' open and see it defragmenting backwards a few clusters at a time, it is probably going to be a long session!
/////////////////////////////////////
Also keep in mind that you can't use the native Disk Defragmenter to defrag the FAT, MFT, paging file, hibernate file (if the computer uses one), or registry. Also, you need to invest in a third-party program if you want to defrag system files.
Something else that may cause this is data slack, or padding to fill up remaining info into the cluster of the HDD from memory. Drive slack is o/s related and is set aside by the o/s to fill up the remaining size. Although in the prev windows versions, defrage would take any data above 51% and mark it as having data (blue line) and any data below 50% as being free space. So, some of that free space may actually contain small fragments of data, be it o/s critical data, folder fragments, or whatnot. So file slack contains random info dumped from memory into the remaining amount to fill up the remaining data whan available in size. Look up unallocated storage space if ya want more info on this one.
Heres a HUGE reason, is if you're using Dynamic disks because of legacy partition tables that 2000/xp uses for its setup and tables.
One thing, there is 2 kinds of fragmentation. Free space fragment and data fragment. Most will just focus on seeing if data is contiguous. To help out, I've heard that Raxco Softwares PerfectDisk is good and beat out diskeeper.
<U>Get PerfectDisk.</U>