Xpand: That sounds a good way to stop the rotation, the other way I thought of was to use the parent actuator. Have a dummy set as the physics object with the visible player ship parented to the dummy. When the dummy registers a hit with the track sides (set via materials) it could be possbile to unparent the ship from the dummy and stop the spinning (as at that point only the dummy has collided with anything).
One cheating way might be to use the Python car script. This will stop the ships drifting as the ship is guided using invisible wheels and may (due to anisotropic friction) stop the wild spins at high speed. This would also mean you would have to fake the hovering motion with an IPO etc. but it is doable.
I had hoped force fields would solve this issue (and they have to a degree)- though I think Python is the way to go to fine tune things.
Ok, updated Blend file time! Find attached a semi-good handling set up. Its still a bit slippery, but the players ship does not spin out when it hits something. The track is just a tester so you are meant to hit the sides!