I phoned up O2 today to get my iPhone 3GS unlocked as I’m taking it off the O2 network, and was astonished to learn:
Pay Monthly and Business customers
Your iPhone 2G, iPhone 3G, iPhone 3GS and iPhone 4 can be unlocked at any time, free of charge. If you unlock your iPhone and put a non-O2 sim into it, you will still have to honour the remainder of the minimum term of your O2 contract.
Pay & Go customers
You can unlock your iPhone 2G, iPhone 3G, iPhone 3GS and iPhone 4 for a one-off