I've just read O2's contract smallprint.
Part 2.2 reads:
"If you have selected a tariff with a minimum term, you may not move to a tariff which offers a lower rate monthly subscription for the 1st 9 months of your minimum term. After 9 months, you may only move down one tariff, per month, to the next lower priced tariff unless you pay us the difference between the monthly subscription on your original tariff and the lower rate tariff we agree you may move to."
It's £99 upfront for the 3G iPhone £35/month contract
and free for the iPhone 3G £45/month contract
Which basically means you can take out the £45/month contract (and you get the iPhone for free instead of £99 on the £35/month), then after 9 months, move down to the £35/month tariff.
Saving you £9 and getting you more minutes and texts for the first 9 months.
It also means you don't have to shell out the £99 upfront