Dynamic object that a character stands on gets thrown after collision

We have a complex vehicle moving. It is composed of several parts ( not just a moving floor, but some kind of fences as well ). When player ( A default character object ) collides with the fence part it starts throwing the vehicle around as if it applied a really huge force at this point. My guess is that character code plainly sets the velocity of a non physics object so that when it interacts with a moving vehicle it is assumed to have infinite mass ( or just be static ) inside the solver! Does any one know an elegant way around this?