More generally my problems have been, the inability to "merge" two or more calls into a single conference and more significantly an error message each time I attempted to access to a BT Openzone hotspot or a Cloud hotspot.
I have had a complaint with O2 for many weeks and have provided details to numerous people but received little help.
A few weeks ago I did resolve the merge call problem. The solution to this is that O2 only provide this on their iPhone tariff. Changing back to the iPhone tariff, from a same priced smartphone tariff, resolved this immediately. They don't admit this anywhere but this was the only change required. Suffice to say that an iPhone is not required but the standard iPhone "bolt on" tariff includes the merge call feature and other tariffs do not. No-one I ever spoke to at O2 understands this. Hopefully this will save some-one else some grief.
Regarding the wifi access, my fix is to change the the user agent string so that the browser reports itself as an iPhone.
The default user agent reports
"Mozilla/5.0 (Linux; U; Android 2.2; en-gb; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
This clearly identifies the phone as an Android HTC Desire. Changing the user agent string to the same as the iPhone gives
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"
This can be trivially changed under Android Froyo version by typing in "about:debug" in the location bar of the stock browser and then selecting menu -> Settings -> UAString and then selecting iPhone.
This works for both the Cloud and BT Openzone hotspots. This is only required to register the device for the first time. Thereafter the MAC address is recorded and access is automatically granted to future connections. This problem has cost me many hours of phone calls and numerous cups of coffee in various hotspots to resolve. It is good that the solution is so simple but annoying that O2 themselves were never able to resolve it.
Using the iPhone user agent string is likely to be only appropriate for customers on the iPhone tariff but I believe that O2 checks for only a small, exact, set of user agent strings during the hotspot registration process. Thus if you get an error across all hotspots then it may be that the user agent reported is not one that O2 is looking for. This is a system that is so brittle and error prone that they should at least have the appropriate logging in place to diagnose these problems but alas they don't.
I hope this helps someone avoid some of the frustration I went through.
update - 4 Nov 2010
O2 has offered a £30 goodwill credit for my trouble.