Getting MV3 on to Azure used to be really painful. The new Windows Azure Tools 1.4 make things better, but they are still a bit bungled up.  The tools fix the missing assemblies problem (although I still maintain that this shouldn't even be an issue and IT should have them installed on the servers, but that's another issue) in that if you create a new Azure project and choose ASP.NET MVC 3 Web Role, it will set all the assemblies you need to 'copy local.' Thanks guys. 

But, you're still going to have problems deploying to Azure, even you pick the empty template.  Your web.config will be full of things that can trip you up, the most egregious being a default session provider, which points to SQL Express, which no instance of Azure will ever have.  So, if you deploy without fixing that, you're screwed. Additionally, if you use the other providers that are in the web.config, you'll need to tweak them, as they rely on providers that Azure doesn't support.  

I'm calling out the folks who built these tools: this is sloppy. If you really want the gory details on this, you can read more Nathan Trotten's post.

While I'm ranting, if I choose an 'empty web template', why are 20 javascripts included with the project? This happens both with Azure MVC3 projects as well as non-Azure MV3 projects.  Empty means empty.

Oh, one other thing: if you create an MVC3 project not from the Azure Tools and then attempt to deploy it to Azure, you'll run into the missing assemblies problem.  Your life gets a little better if you have SP1 installed because you can invoke the Add Deployable Assemblies feature (explained here), but if you don't have SP1 installed, you'll have to do it manually.