Found this on the iPhone section of the O2 website. It is in the FAQ section under pre-purchase questions.
I expect this is probably still remaining from the original iPhone introduction but it might be helpful for new upgrading customers to complain with.
Consumer Customer Upgrades
You'll need to start a new 18 month minimum term contract and pay for your iPhone handset but you can keep your existing number.
* If you became an O2 customer or upgraded on or before 18th September 2007
You can switch to an O2 tariff for iPhone without paying any remaining monthly charges on your existing contract.
* If you joined or upgraded after 18th September 2007
You have a choice, you can either:
(i) enter into a second pay monthly contract whilst keeping your existing contract; or
(ii) start a new contract by paying a one-off transfer charge of £219 instead of the remaining monthly charges on your existing contract.
O2 Simplicity and O2 Pay & Go customers will not be required to pay any additional charges.
I expect this is probably still remaining from the original iPhone introduction but it might be helpful for new upgrading customers to complain with.