I have the same problem with my laptop. Think it's an issue with the hard drive.
My solution is quite simple. Turn it on. If it starts rebooting, turn it off, shake it, and try again. After a few rounds of this it tends to work. Then I don't move it for as long as possible and it's fine!
Just a pain when I have to take it somewhere, as I then have to go through the whole thing again.
Have you thought about taking the hard drive cover off (on the bottom of the laptop) and checking the connection? If it's loose just push it back in and you will save yourself a whole lot of bother.