[eluser]kilishan[/eluser]
Yea, MY_Controller is a perfect example. I'll typically have a Front_Controller and an Admin_Controller class in the MY_Controller file. The Admin_Controller will be responsible for loading any models that are needed everywhere in the admin section of the site. It also takes care of checking the user has permissions to be there. That way I don't have to worry about it elsewhere.
Keeping with the controller portion, I autoload as little as possible (typically only my session, database and templating classes). Then I'll load those models/libraries that are needed throughout the frontend or backend in their respective Controller classes.
MY_Model is also a good one to look into, unless you're using something like DataMapper or IgnitedRecord. You can setup a base model that has all of your standard CRUD features and maybe a couple of utility functions, then base all other models off of that. Though I've had one situation where I needed an NSTree for a couple of the models, and put another base class in the MY_model file so that I had that core code in one place.