Based on your description and assuming you want as much out-of-box as possible, I'd go with ASP.NET Membership and Profile properties, and the ASP.NET Login controls. As I see it, it will help you with all of your requests.
ASP.NET Profile Properties Overview: http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
Login Controls Overview: http://msdn.microsoft.com/en-us/library/ms178329.aspx
Managing Users by Using Membership: http://msdn.microsoft.com/en-us/library/tw292whz.aspx
Based on your description of custom user information, I don't think there's a need for a separate database; custom profile properties ought to do it for you. You can place your admin pages in a separate folder and have these folders secured with a location element in the web.config, and have the menu security trimmed using the Menu control and a SiteMapProvider control, based on a web.sitemap XML file using the roles attribute. As I said there's a lot out-of-box using these features, but obviously it will take some time to put together. The only thing that I think you will have to do manually is the creation of a new user; it is certainly supported by the Membership class, but you need to supply the username. However, creating an algorithm for creating a new user, shouldn't be that big a deal.
There you have it, me 0.02$
Good luck. 