The ASP.NET Provider Model was a great technology to solve the problem of allowing someone to "plug in" a separate implementation of some functionality into a web application. The Provider Model is generally a bit painful to implement requiring configuration so it's used minimally.
IOC is a great way to ensure separation of concerns at each level of an application, so it is good to use extensively to support Unit Testing of all components.
If a web application is using an IOC container, it seems wrong to use the Provider Model also, because you seem to be abstracting out something that is already abstracted out, creating two levels of complexity (except possibly for existing providers - I am talking about making custom providers).
(see more on this on my blog post: http://healthedev.blogspot.com/2011/12/making-custom-built-applications.html)
I am using AutoFac for IOC and it's possible to allow "configuration override" so that seems like a good alternative to meet the same solution the Provider Model gives me, however I don't know a whole lot about how MEF might meet this requirement or if there is something else out there I am missing?
If you could design an ASP.NET MVC web application from scratch, and a requirement was that you had to on-sell a packaged version so others could "plug-in" certain bits of data access without needing to re-compile, how would you go about implementing it?