I am pretty network agnostic. If I were buying a new phone contract tomorrow, I would not really care which network operator I used. Obviously I'd check out the details of the contract - but the name of the operator is not significant. With one exception - they have to issue a PAC code over the phone. If an operator isn't prepared to let me leave, then I'm not prepared to join them in the first place.
That excludes two major UK operators. In one case, they led one of our employees through a song and dance, repeatedly promising to send the PAC code and failing to do so. In the other, after my wife eventually got past all the obstacles placed in her way (we are busy now, could you call back after midnight?), the operator told her they would mail the code out and she would receive it in 10-14 days, or something equally ludicrous. Only when she asked why they couldn't SMS is did they volunteer that in fact they could, and that it would take about five minutes.
A quick glance at wikipedia tells me that these scenarios are pretty typical for the operators we were dealing with.
Why? It is understandable that network operators don't like losing customers. It is less understandable when a network operator makes it hard for a customer to leave. When a customer calls you up to ask for a PAC code, it is very likely that this is their first ever experience of your customer service. Why not give them a good experience, and encourage them to come back in a year or two when they are looking for a new contract? As things stand, there are now two operators in the UK who I am unlikely to use or to recommend to other companies and friends) for the next few years.
Good customer service may not get talked about as much as it should - but bad customer service certainly does.