I got the same "not enough space" error, and here's what I did:
1) ran disk cleanup wizard, removed hibernation file and all restore points
2) disabled system restore (advaned system settings, system protection tab)
3) disabled the pagefile (advanced system settings)
4) disabled hibernation option in power settings
5) disabled kernel memory dump (advanced system settings, Startup and Recovery section)
6) rebooted the machine and then deleted the c:\pagefile.sys file
7) ran power defragmenter
http://www.softpedia.com/get/S.....nter.shtml
8) ran auslogics defrag
http://www.auslogics.com/disk-defrag/index.php
9) ran the defrag utility you mentioned to move the mft
I was then able to shrink the disk successfully. You'd then want to re-enable the pagefile and the other options.
This has to be the most infuriating problem I've come across in Vista... I spent a good 8 hours troubleshooting this on my machine yesterday, and am still having very little luck with a good, repeatable solution for fixing this problem. (don't use gparted, it might screw things up unless you follow some very specific and painful steps) The second time I tried all these steps on another machine, it didn't work.
On the good side, this doesn't seem to happen when you first get a machine, only once it's been used for a while.