I second the two project approach. Jimmy Bogard has a nice post on the approach as well (make sure to go through all the comments).
I personally find that when I'm working on a part of an application I use related services, controllers, repositories, etc.. and when you put each of these files in a different folder it can get tedious going back and forth and finding them. After some playing around I've been following this format:
AppName.Web.UI
Scripts
Content
View
AppName.UI.Core
Attributes
Filters
Formatters
Helpers
Models
Company
Interfaces
IController.cs
IRepository.cs
IService.cs
ViewModels
ViewModel1.cs
ViewModel2.cs
Controller.cs
Repository.cs
Service.cs
User
....
Plugins (mailchimp, Twitter OAuth, etc..)
Global.asax (define all the code here rather than in the UI project)
Test Project
...
I think it depends how large your project is as to whether you further break down and use Interface and ViewModel sub folders. Its not perfect, but I've found it meshes better with the way I think.
The case can also be made to put your services and repositories into a third project (AppName.Core), leaving the AppName.Web.Core project encapsulating only Web relates parts (Attributes, Controllers. ViewModels, etc..). Again that really relates to the complexity of the project.