Windows 98 used to do this when it couldn't disconnect from the network properly or the print spooler wouldn't close properly. I haven't had this issue in XP that didn't go away on it's own, so I can't say for sure what the issue would be with Vista.
I would check the event viewer and see if there are any errors when you start it up. (Or warnings for things like "X.exe did not close properly on shut-down..." etc.)
2nd I would go into MSConfig (type that in the run command) and go to the services tab (check the "Hide all Microsoft services" button) and then see what is running and see if anything matches up with the event log. You can always uncheck them all and rebooot and then try to shut down your laptop again to see if that works. (You can simply recheck them to have them start-up again)
Give that a shot and see what happens.
~B.