Ah... you're describing my daily morning game of Russian Roulette.
I stubbornly refuse to shut down using any other manner than the one I find most convenient: Hibernate.
It'll work fine for a while. Long enough for comfort to begin to set in. But there's always that little increase in my pulse-rate when I drop my laptop into the docking station on my desk and hit the power button. The Resuming Windows bar moves across the screen. Fingers are crossed, and I turn to face Mecca whilst gripping a rabbit's paw for good luck. The screen goes black. Will my desktop appear? The wind's northerly, so the chances are good. Woohoo! It's worked! I've dodged the bullet this time...
However, every now and then... not often enough for me to abandon hibernation, but just often enough to keep things interesting... The machine will sit with the Resuming Windows bar full, or at the black screen after the bar... and go no further. I'll go get a coffee and sometimes it'll go through to the desktop. But then there's the times when it'll just be stuck there. Hold the power button, turn it back on, tell it not to delete restoration data and try again... No joy? Shut down again. Pull the USB connections and try again. Fails? Pull the ethernet cable and try again. No luck? Try plugging things into different USB ports...
Eventually, it'll work. But sometimes this feature is just plain borked. Completely unable to diagnose exactly what's causing it. Sometimes the saved session will have no apps open - just the bare desktop - and it'll still fail to resume. Totally random as far as I can see, which suggests it's something deep down in the crapitude of Windows' internals that's locking... something freaky going on with device initialisation I suppose.
Of course, being a Windows dev whose frequently eye-deep in XP's guts, I look at these problems as a father whose wayward son just won't get a clue would. It's just how it is. But... from an end-user point of view, if you're going to have a suspend and resume feature (be it sleep, hibernate, etc) it must work right 99.9999999% of the time. It simply must -- it's a critical time for the user's data, and the feature must behave as described. Either that, or the description of the feature should carry a caveat right there in the UI that activates it.