There are two ways to design a process. It can be designed to account for everything that could possibly go wrong. Or it can be designed in such a way as to handle exceptions when they come up.
Too often companies design everything according to the former strategy. It's this design mindset that results in very long and complicated processes and systems, large and unwieldy forms, and massively complex procedures for paying for the simplest service. Such systems are usually developed by bureaucratic, risk averse, over thinking people who want to say that they covered all the bases. And no, government officials are not the only ones guilty of this.
Yes, this approach to procedures has become the hallmark of government. But what is truly appalling is when private sector companies whose very existence depends on customers choosing to spend money with them, make it difficult for these customers to give them said money.
Part of the problem is that companies don't trust their staff. They would rather put a process in place that accounts for every conceivable exception, than give their staff the power to handle exceptions. This is an indictment of their staff training methods, not on the ability of their staff.
Not to be overlooked is the fact that exceptions are rare. Complicating a two minute process with ten minutes worth of steps, to account for a problem that may occur one in a hundred times, is lunacy.
Deal with the singular exceptions instead of making a thousand rules.