This type of forks is easy to detect. Every time it happens, bitcoin deamon prints "REORGANIZE" is debug.log. There is one every a few thousand blocks due to coincidental finding two blocks at roughly the same time. After that miners try to add to the chain they received first. If the one that won the race is not the one you have stored as the longest in memory, the chain reorganizes. For those who has the other chain, nothing will be printed in debug.log because no reorganization takes place.
Since the client requires 5 confirmations, any shorter than 5 fork cannot reverse any confirmed transactions. So detecting large forks is the very first step in finding potential problems.
I have never seen a fork longer than 1 on mainnet (I have seen some on testnet) and it is very rare by accident. I remember that on IRC someone claimed that after the very first slashdoting in July last year, the blocks were generated so quickly (and the network was smaller), there were quite a few longer than 1 accidental chain splits.