You can't really compare the O2 contracts with the AT&T ones as the US mobile telecoms market is radically different from the UK one.
This is about the difference between this year and last year within the context of the two separate markets, not the actual conversion between $ value and £ value of the handset costs. Nothing of significance has changed in the UK this year compared with the US to suggest why the 3GS is so much more expensive than the 3G here as opposed to the US. A small increase could be understood (due to weaker pound), but not the massive increase we have actually seen.
O2 is focusing on 24 month contracts. They are not required to apply handset subsidies evenly across the board.
And on a 24 month contract, a direct comparison with the US --- you Brits are getting a much better deal than the Americans. Brits have the best deal out of the G7 countries. Aside from Hong Kong, Brits get the best iphone deal in the world --- the reason is competition (Hong Kong has 6 carriers and UK has 5 carriers). Wait until T-Mobile gets out of UK and you have 4 carriers, then your prices will go up dramatically.
You Brits don't even know how lucky you are.