Why is it that if I'm sitting on a seat on a bus or train and its moving quite fast, I am able to throw something in the air and easily catch it? Why is it that I haven't moved 'past' the thing during the time its travelling up and down?
The thing you throw in the air is also traveling at the same speed you are, in the same direction. When you throw it up, it doesn't matter that the earth below is moving backwards at speed, nor that the moon is moving past even more quickly, nor that the earth itself is spinning and moving relative to the sun.
The ball has a speed and direction and currently that matches your speed and direction.
When you throw the ball up, you have added force in a new direction, which alters its speed and direction, but only with respect to your speed and direction. In other words, to you the ball appear to go up and down, but to the earth it's falling like a projectile - forward up and down. Since you are traveling forward at the same speed as the projectile, it appears to you that it only goes up, then down, even though during that time you both moved forward.
I'm not actually going to break out the math, but here's the short version:
You and the object are moving at a speed and in a direction that we'll call vector P and B, respectively.
Currently your two vectors match. Relative to some other reference frame you are both moving, but relative to you, since your vectors match, the object appears to be motionless.
You apply a force on vector B, which alters its trajectory. Now this force results in additional speed and direction described by vector T. The object, therefore, is now moving according to the vector B + T. However, again, since B = P, it appears to you that the object is only moving according to vector T.
Gravity is applying a force to the object, which will eventually reverse T in the down direction, unless the ball is acted upon by another force, such as your hand catching the ball again.
So regardless of what vector you apply to it, it will be in addition to the vector you are already traveling at, and therefore it will appear to you as though it is only traveling along its new vector.
All physics that we know obeys the principle of relativity, which states that it is impossible to tell whether the train is moving at a constant speed or not without looking outside. In a real train, you can tell, but only because the train ride is bumpy and the train changes speeds. In a perfectly-smooth train, it would be fundamentally impossible.
Since you can throw the ball up and catch it again when the train isn't moving over the tracks, you can do it when the train is moving over the tracks. If the ball behaved differently, you'd be able to tell when the train is moving. Since there can be no way to tell, the ball must behave the same way.
There's no deeper justification of this principle. We can take the various physical theories we have and prove that they obey the principle (which several other answerers have done), but ultimately many physicists have come to believe that relativity is simply built into the universe, and that future theories will obey it, and that if we ever find an exception to it, it will apply only in extreme situations (like, for example, tiny distances much smaller than an atomic nucleus).
You might also want to see this earlier question about relativity and the speed of light, where I said pretty much the same thing in more words.
Barring the affects of air resistance and such, just think of the object as also "part" of the train moving at the same velocity as you. Essentially there is no way to distinguish between an object at rest or moving at a constant velocity.
Momentum is conserved. If you are on a frame (the bus) moving at a velocity that is constant, then everything else is as well. The momentum of every object is $p~=~mv$. This is whether or not there is something holding to the frame. In the absence of some force a body maintains a constant momentum.