Not sure if this is the "best" way but the way we do it is
- Common Code (security,db) in it's own source controlled project/s, i.e. StackOverFlow.Common, StackOverflow.Data etc.
- Common MVC Code (C#) (Validation Annotations, Html Helpers etc) in it's own source controlled project/s, i.e. StackOverFlow.Mvc.Common etc.
- Common MVC4 project - jQuery, NuGet librarys, Views, Twitter Bootstrap, Less etc. in it's own source controlled project i.e. StackOverFlow.Mvc.
we use TeamCity to provide Continuous Integration and also take advantage of Team City 7.x as an internal NuGet server.
When we start a new mvc project, we create an empty MVC4 projects, set up a basic structure and run two NuGet commands.
Another way would be to create a vstemplate from the Common MVC4 project. That way you could integrate it into the File --> New Project process.