SetVelocity used to be (and I presume still is) a local command. How it behaves on the ball will depend on which machine the ball is local to(the server?). If you call setVelocity on a non-local vehicle, the machine that calls the command will see the vehicle respond to the command, but only until the next network synch, at which point it will return to whatever position it has on every other machine. I presume this is still true since 1.08.
Is the ball a vehicle class object or a static object. Static objects never used to respond to setVelocity, pre 1.08.