Found in Version:
During TR_m3_OE_GhoulBusiness, if the player finds the corpse of TR_m3_Tindalos Miranus, TR_m3_Galug the Barber is moved behind the player, with the intention of triggering a ForceGreeting when the player approaches him. This works, if the player has visited Ebon Tower, Mara's Tower where Galug is normally located. If Galug has not been encountered, however, the NPC appears to lose his script entirely, which makes the ForceGreeting not happen, and *also* crashes the game when the player tries to talk to Galug (on account of not being able to set doOnce to 1 in the dialogue result, I imagine).
This issue with PositionCell moving not-yet-loaded NPCs is really strange but I have been able to verify it with vanilla NPCs, too - Tholer Saryoni also loses his local variable if we substitute him for TR_m3_Galug the Barber, and I added MessageBoxes to TR_m3_OE_GalugScript that should have fired if he had any script at all, but they did not.
Exiting/re-entering the cell does not restore the script once broken, nor does Disabling/Enabling the NPC.
The script does stay in place if Galug has been loaded before (if the player has visited Ebon Tower, Mara's Tower).
The script that moves Galug is TR_m3_OE_TindalosScript - it is possible that this (somehow) plays a role, as the error does not appear to stem from Galug's script.
A potential stopgap solution would be to greate a dummy Galug in the relevant cell and move the dialogue and fight to this new NPC, and disabling the old NPC when the journal progresses. But I'd rather find the root cause of all this fuckiness.