A friend of mine ran into the same issue with Windows XP on their laptop every time the laptop was put into hibernation... What they were doing was using a USB external hard drive.. they would turn it off, as it could not be safely removed as the paging file was running on it. Then they would put the laptop into hibernation by closing the lid.. Upon restarting the BSOD appeared every time.. the fix was very easy.. Use the standard power settings and make sure hibernation is enabled. Then go into the memory settings and turn off the virtual memory.

Turn off the laptop and wait a minute to flush the memory. Now start the laptop and shut the lid and put it into hibernation.. Open the lid and it should run fine with or without the external USB drive attached.. Virtual memory is an archaic holdover.. if you aren't doing a lot of video rendering it is useless... and with ram so cheap, if you need it, buy some more.. Sometimes the obvious is overlooked...