I was looping through the list of sites in a site colleciton in a web part. All worked fine for me, and I thought all was good. Unfortunately, the web part created access denied errors for anyone who was not a Site collection Owner. Clearly, that would be a rather crapy solution since only a couple of people/accounts can even be set to that.
SO, instead of looping that way, I had to pull a specific link to the site directory web that contains the sites I want to loop through. Then, just use that web object's Webs collection instead of the site.AllWebs.
Not sure why AllWebs always links back to the root site collection, but hey, at least MS gave us the Webs collection as well. Would have been nice for it to be named SubWebs kind of like the folder structures though. Oh well, can't have it all!