I didn't get an iphone until 3g was released. I waited about 3 weeks maybe until I finally decided I wanted one. Apple stores got shipments daily eventhough apple.com and att were telling people to wait a couple weeks. I went and preordered and an att store here in wichita then a day or two later I drove down to OKC on a saturday and picked one up. There was a line of course, but they received a lot in for that day. The last two years they have had an availability chart on apple.com that will let you know what stores have/will have in stock for the next day.
Once I got my iphone I went into the att store and canceled my order and they seemed dumbfounded as to how apple had them, but hopefully by now it shouldn't be a shock. I plan on doing the same thing this year. I'll wait until I have a day off and head down there early one morning to get one.
It is cheaper for Apple to ship a phone to one of its stores than to send it to your house. Also, from a business standpoint, it makes more sense to allocate most of its stock to stores. Those who order online already know that they want the phone, while stock in stores may nab some impulse purchasers.
Not to mention all the peripheral sales that Apple will make along with the iPhone. It's a lot easier to push Applecare, docs, earbuds and so on in store then it is online.