I have an iPhone 4S from Verizon, which they've "unlocked" for international use. I say "unlocked" in quotes because it's still restricted from US SIM cards. I'm able to use any international SIM, but I can't use a SIM from AT&T, T-Mobile or AirFire.
I'm guessing this restriction involves checking if the Mobile Country Code is from the United States (310-316, I think). Since AT&T's MCC-MNC is 310-410, it's obvious the phone shouldn't be happy with it. However, with a SIM from GiffGaff (a virtual carrier on o2's network), I'm able to use AT&T in the US because their MCC-MNC is on the list, but not in the home position.
Armed with this information, I'm guessing I can take an AT&T SIM card, bump all the MCC-MNC's on the list down a position, and add a UK carrier in the 'home' position? That way my phone will look for the UK carrier and believe that it's a UK carrier's SIM, not find it and then move down the list to the roaming networks?
If anyone has any information on if this will work, or can point me in the right directions for the tools to try this, please let me know!