I'd been on O2 for YEARS and when my contract was coming to an end last september I was told to just 'go to vodafone'. I spoke to a few different people on different days. They happily cancelled my contract and said if Vodafone are offering a cheaper deal then you gota go where the best deal is. !!!!!! Honestly.
They messed up my cancellation and for some reason put me on another contract, and then tried to charge me £25!!! It wasn't till I was cancelling that unwanted and unagreed contract some guy offered me a cheaper deal. I said no thanks, I've already been told a number of times to go to vodafone, so I have. He cancelled my contract but I was still getting bills through for this £25! In the end, it took 56 minutes on the phone to get them to wipe that bill. It was a nightmare.