There's a solution: kill the NPC, Setunconscious, then resurrect. It works great. The problem is, I want my NPC to be in a particular position, so he's already dead (zero health). Killing him in this state make no difference - he still falls through the floor. I tried endless combinations of Kill, Setunconscious, Setghost without success. The only success I had was with killing a live NPC, which is no good (as he just sprawls down haphazardly).
Setting the NPC into combat mode eliminates the falling problem, but combat mode only comes into effect after the 'get up' idle has played, so the NPC starts to get up, falls through the floor, magically levitates back and then starts searching.
I tried creating a script that checks the NPC's Z position and if it drops forces it back, and discovered something interesting: the Z position does not change. The game (or part of it) does not seem to be aware that the model has fallen at all.
I'm close to concluding that this is impossible, but I wondered if anyone has found a solution.
Is it possible to do the equivalent of a TCL on an NPC? With TCL enabled on the player, 'gravity' ceases to exist. If I could do that for the duration of the 'get up' idle, that would solve the problem.