For a beneficiary (merchant/exchange/whatever), the safest thing to do in case of a fork would be to require that transactions clear in both blockchains until it is clear which blockchain wins; However, this gets a bit difficult if either blockchain happens to be slow.
Sounds good. The client should be monitoring both chains anyway.
A transaction is not confirmed unless it is included in forks that are collectively getting at least 90% of the hashing power.
The nice thing about that is that a fork doesn't freeze the network while it is being worked on.