a) Run your first user tests from a VPS. Head over to serverfault.com and stackoverflow.com , and find the previously asked questions about best Windows VPS + SQLServer hosting providers.
b) Head over to BrowserMob or a similar scalability testing service, and run tests against your site to get a ballpark figure for how many users it can handle. Be sure to run a realistic test which pulls data from your database.
c) When the VPS gets too small, do you then go to a dedicated server first, or direct to cloud computing? This is debatable, there are fair arguments for both. I guess it will depend on your growth expectations, i.e. how long you see that dedicated server lasting, and how sensitive you are to server downtime of your single server.
If you choose to run on a single server / 1-3 servers, then head over to the webhostingtalk.com forums, and find recommendations for a good host. My preference would be for a host that offers:
- a firewall or a network intrusion detection system in front if your server.
- renting servers, not co-locating your own hardware (if you colocate you have to provide all hardware replacement yourself).
- a good remote management solution (KVM-over-IP, self-service portal).
- optionally, more expensive but depending on your own skill set possibly better, a fully managed service.
d) Ultimately I think most people will want to run their webapps on a cloud computing service provider.
Amazon is a poor choice for .NET right now, as they have not supported Windows 2008 for years, and there is no date on when they will support Win 2008 / 2008 R2. (I believe they are working on it, but their Windows track record so far is poor.)
Windows Azure looks awesome, and the more I have read about it, the more it appears that Microsoft is deadly serious on building a strong presence in cloud computing. Rackspace Cloud looks fine too, and could be a better choice right now since Azure is still in beta. Longer-term I think Azures roadmap looks more impressive.
soon after launch I'm hoping to draw 100,000+ users per day
100,000 unique visitors per day, so 600,000 - 2,000,000 page impressions per day? That sounds very high to me, but of course I don't know what your app is about. But if you're realistically going to get that kind of traffic soon after launch, then head for cloud computing hosting ASAP, maybe even during your beta test period.
Update: I forgot to mention Microsoft Bizspark, but luckily Bob Walsh wrote a good answer about it; see his answer. You want BizSpark if you co-locate your own hardware, or if you use a web host who is a member of the BizSpark programme. Windows Azure already has the license fees included in the compute cost; I don't think there is a discount on Azure for BizSpark startups.