When you are 'on' something, the implication is that there is some space above and to the sides, as in the days when buses had open tops. You are on a bed if you are sitting on it, but not covered by the duvet. If you are 'in' the bed, you are enclosed by the duvet. If you are 'in' something, that is just a short way of saying 'inside', which implies that you are enclosed in some kind of container, such as a car.
http://english.stackexchange.com/questions/251/origin-reason-for-the-expression-on-the-bus-instead-of-in-the-bus
I think Tilly was right first time. If you have to climb to board you are 'on' it, but if not then you are 'in' it. So you would be 'on' a ship but 'in' a rowing boat.
and why is the on THE bus (not on A bus), when there are lots of them. In THE car I can understand because people are likely to be in a particular car.
As suggested above, it is largely a matter of how much space is involved around the traveller; thus you fly ON a plane but IN a helicopter, you ride IN a cab but ON a horse and so on.
I was very brave on Monday, I used my Bus Pass for the 3rd time in the year I've had it. I didn't get the Nutter sitting next to me, but it took twice as long as the car would have done, it was noisy, uncomfortable and had no Infotainment, not a habit I,m going to get into!