another option is to disable the pagefile and/or hibernation. make sure it is deleted after rebooting the pc. then defrag. afterwards re-enable the pagefile and/or hibernation. this works with at least 1Gb physical memory. or you could use a BartPE of windows XP SP3 to defragment your hard drive using MyDefrag on a USB stick. either method works great for these normally locked out files and won't cause any damage.
I tried removing and recreating these files. However, Windows XP is exceedingly stupid when it comes to recreating these files. It's almost as if it looks for an allocated cluster to wrap the files around. I first tried to use contig and ForceTogether to make a space at the end of the drive. Unfortunately, as soon as MyDefrag exits, the drive starts to fragment again. I tried several times and there was often a cluster allocated right in the middle of the freespace. When that didn't work, I left a larger freespace, but Windows would always jam pagefile.sys or hiberfile.sys against the fragmented region, with the result that the files were fragmented. PageDefrag can be used to defragment pagefile.sys, but it seems to require enough freespace to create a new copy. It won't defragment hiberfile.sys.
It would be really nice if there were system calls that MyDefrag could use to create these files after a suitable location was allocated. There's a good idea for a new feature.