Ask HighScalability: How Do I Build My MegaUpload + Itunes + YouTube Startup?

This question was sent in by Val, who asking for a little help in creating the next big thing. Any ideas?

I'm  planning to run my own, first startup website and have been surfing the  webs for relevant info to plan the technology I will use for it (the  frontend and the backend, including the software and the hardware). The  website will be something like a combination of:

  • MegaUpload (users will upload their files)
  • iTunes (users will be paid for their uploads)
  • and YouTube (in the future I'm planning to let users watch/listen to the content online, without downloading).

I don't have any investors yet, nor the budget - I'm still preparing the  idea and I'm going to create first implementation (an "alpha version")  before I show it to potential investors. Hence the initial technologies  have to be extremely cheap *but* also highly scalable in the future so  that I don't have to redo anything when the website grows.

Unfortunately I don't have much experience in running big wesites but,  on the other hand, I hope my website to grow extremely big (of course).

My questions are:  

1. What programming languages should I use? I don't know JavaScript/AJAX  or PHP yet. I know C# and I found mojoPortal to be an interesting  solution - based on ASP.NET but can run on Linux through Mono. I'm also willing to learn AJAX/PHP if it is necessary.

2. Should I use an existing framework/CMS (that I would only modify) to  avoid reinventing the wheel of all the algorithms for user registration,  logins, file uploaders etc? Won't this framework/CMS limit me in the  future with it's performance, limited functionalities etc?

3. How should I plan the database? I read MySQL is probably the best for  this kind of projects but how should I save the data to ensure data  safety and scalability? Generate a new database for each user and then  make a copy (backup) on a different physical machine? Create one big  database for all users and files (won't that be too slow and  unseparatable between machines)?

4. The server. I think Linux will be best for the beginning, but what for the future? If I base my software on C#/ASP.NET, should I go for Windows Server in the future?

Advice from anyone experienced in this kind of web development is very much appreciated.