I checked with O2 what the early upgrade offer would be for me.
I have ten months left on my original contract.
They say it will cost me £200 to buy myself out of my current contract, then a further £209 for the iPhone 4 32GB.
SO essentially for the next ten months I would be paying my current contract at £200 (albeit a discounted rate), and, all in one, then starting a new contract at £35 per month for the next two years.
May try CPW, they did a part exchange on my previous phone and gave me over the odds compared to other places, and, they checked it there and then and we mutually agreed the condition.