GAME_CHECK_DROID shouldn't do anything, unless the game is out of synch, now. And should print, if the droid isn't in _exactly_ the same place on all screens.
GAME_BUILD should fix the structure ID of the structure being built. GAME_BUILD and GAME_BUILDFINISHED shouldn't do anything other than that, unless the game is out of synch, now.
Sanity check all use of selectedPlayer. It should be used for deciding how the interface works, not for changing the game state in random places for no good reason...
Fix destroying droid templates. Can probably go out of synch, if destroying a template just before the droid is produced, due to trying to produce an unknown type of droid (so the other players would see the new droid, but the droid owner wouldn't).
Check what validLocation is used for, make sure that putting delivery points under locations where buildings are going to be placed can't cause synch errors.
In destroyStruct, check that psTile->illumination can't affect the game state. Or make it consistent, so all players see the same scorch marks.
Such as unloading transporters directly, not sure if that's used in multiplayer, though. And scrResetPlayerVisibility, scrSetDroidKills, scrFireWeaponAtLoc, scrFireWeaponAtObj, scrTakeOver..., some others, scrAddPower, scrCompleteResearch, scrDestroyStructure and many others.