There are a number of questions on Stack Overflow regard MVC best practices, but most of those seem to revolve around things like using Dependency Injection, or creating helper functions, or do's and don'ts of what to do in views and controllers.
My question is more about how to architect an MVC application. For example, we are encouraged to use DI with the Repository pattern to decouple data access from the controller, however very little is said on HOW to do that specifically for MVC. Where would we place the Repository classes, for instance? They don't seem to be model related specifically, since the model should likewise be relatively decoupled from the actual data access technologies.
A second question involves how to structure the layers or tiers. Most example applications (Nerd dinner, Music Store, etc..) all seem to use a single tier, 2 layer approach (not counting tests) that typically has controllers directly calling L2S or EF code.
If I want to create a multi-tier/layer application what are some of the best practices there in regards to MVC?