There were canary contracts to notify that a given chain was bad. They were very easy to use; check storage location 0 of contract at the given address (see below). If non-zero, client would not mine (at least without a non-default option being given to ignore the canary and mine on a known-bad chain).
Specifically there are three modes they could be in:
0All fine. Carry on.
1Bad chain. Client should not mine on it. Client upgrade not yet available.
2Update required. Just as for
1; additionally, an update to your client is available and would be prudent.
Clients that implemented this protocol displayed a message to the user to make any non-zero status clear. For a status of 2, the user would be notified than an immediate upgrade was required, regardless of whether mining was enabled.