If the phone is taken on a contract, I believe the unlock policy is that it can only be done after 90 days. I bought the phone without a contract outright, which is why I was able to get the unlock code within a week (although I had to call them up and argue a little).
With regards to the unlocking itself, from what I understand if the phone is not rooted (I don't wanna do it yet as I'd rather keep the warranty for the time being, at least while Im still in the US), then the only way it can be unlocked is with another carrier's SIM card because that is the only way that you get prompted to enter the code. I have a code available for my phone, it's just getting the damn card so I can actually unlock it.
btw Im currently in a country with no contacts who are with AT&T, so getting their SIM card is easier said than done. It costs 25 bucks to purchase a AT&T SIM, something I would rather not do to get the unlocking procedure done. From what I've experienced At&T is the only major provider aside from t-mobile which still uses SIM cards, and Boost mobile/Sprint cards won't work with regards to unlocking because they use a completely different type of network, so the phone can't even detect their SIM card (I tried a Boost SIM and it didn't work)