1.) Do I need to install MVC 3.0 on server if I've referenced all MVC dll (with Copy Local set to true?)
No, you could bin deploy
your application.
2.) If I had MVC 2.0 installed on web server, does IIS picks MVC2.0 dll or MVC 3 given step 1 scenario above?
Assuming you have placed proper assembly binding redirects
in your web.config It will pick MVC 3:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
3.) When does IIS looks at DLL vs. BIN folder?
When the application starts, or when first required (assuming some assemblies could be dynamically loaded at runtime).