Reg,
Thanks very much for the thorough answer. The client-side ideas aren't viable for us because they'll result in a missing row in between sync cycles, and also because we don't have enough control at the remote sites to do some of those steps.
The server-side solution looks like it can work. I'm going to add one wrinkle though. The handle_upload event will save the data for rows that need special handling, but not change the data yet. Then the upload scripts will be responsible for reversing the order of the insert and delete. That way, if the insert depends on any operations that happened earlier in the upload stream, the data will be in place when it's needed.
Thanks again.
Eric Murchie-Beyma