I thought that I'd share this, as it may benefit someone else.
I've had endless hassels with 3 over the last couple of weeks, and today I had enough, and phoned to cancel my contract. After an hour on the phone, I got through to the cancellations department, and they asked why I wanted to leave, so I just said that I want an iPhone.
The guy then said that as I am existing customer, I can get an iPhone 3G on three for £25 a month now if I'd like.
I cancelled anyway as I want the 3GS, but thought it may be useful to share.