[eluser]jwburnside[/eluser]
A base controller could really go anywhere you want. I usually put mine in the controllers folder, and then build my apps in their own folders inside the controllers folder. To extend it, you need to require the file and update your class declaration:
Code:
require_once('/var/www/applications/controllers/base.php');
Class Airline_Controller extends Base_Controller {
...
You don't really have the need for "includes" in Codeigniter. You can just write code into the constructor, such as the authentication code. It will run automatically each time that you access any controller that has extended the base controller. If you have a specific function that you want to be available everywhere, you can make it into a helper, or a library if it is more complex.
You can also write functions in the base controller that can be called from the child controller. I use one called "render" that will take view paths, titles, styles, and scripts as parameters, an build the page out of them. Then in my child controller, instead of $this->load->view(), I would use $this->render().
Hope that helps.