How hot does it really get? Do you really know how hot it gets?
Use
SpeedFan, it will tell you how hot the CPU is actually running at from a sensor that is placed within the chip itself. Keep the program running and monitor the temperature at different times. When the CPU usage is up, expect temperature to increase dramatically.
Also here's another test which should cause your computer to restart within minutes if you think it is a heating problem. Monitor your temps with
SpeedFan, and use
LinX, which will cause 100% CPU load and will cause more heat than any other application can offer. Monitor the temps, and wait for it to restart. Terminate the application if you see temperatures that go over 100 degrees Celsius, because that will indicate a major cooling problem. If it restarts after it gets really hot, or somewhat hot, it is a cooling related issue.
What I really think is that it isn't overheating, but instead, a software problem. I have a desktop which would complete cut out and restart (like someone pressed the restart button on a Nintendo 64), but not because it was hot or the power supply was bad, but there was a major ERROR in Windows which caused it (something to do with minidump, but I never really solved it)
Make sure Windows is updated, and make sure you run appropriate spyware/adware/anti virus, as well as use
CCleaner to clean the useless, and perhaps shutdown-causing junk off your computer. It might be a real problem within Windows, and if then, maybe reinstalling Windows might be the only solution.