I wrote a blog post describing some techniques to move away from base class service location.
http://blog.csmac.nz/the-service-locator-base-class-antipattern/
This is a solution containing some MVC applications which contain the origional problem along with solution attempts as well as what I would consider the 'right way'
Take these, and try writing tests against the controllers, or extending the functionality with new controllers or actions to see why I believe the proposed solution would work the best in most cases.