I went in to an orange shop one month before the end of my contract to ask about upgrades - I was told that I would need to pay an upgrade fee an a large fee for the phone, even though new customers got it free.
I said fine and left, then phoned Orange to give my one month notice. They asked why and I explained. They agreed then and there to upgrade me to the phone I wanted at no cost at all, the only condition being a new 12 month contract (fair enough - no problem). It was couriered to my office within 48 hours.
I once spoke to a revenue consultant at O2, (or something like that) and the view in the industry is 'why offer it free to everyone if some will pay'. Some will pay the silly charges, and the rest you can give it to when they ask to leave.
That is market forces for you.