[eluser]Natebot[/eluser]
In addition to placing both the system and application directories outside the web root, I like to use a symbolic links in my dev environment so I can easily point to a different system and application folders.
For example, I have have two application directories each with a different version of the app, app_1.0 and app_2.0, and I have a symbolic link 'application' point to the application I want to run. This also allows me to toggle between CI system directories too, in case I want to test my app with the most recent svn release.
| htdocs - root directory
| CodeIgniter systems
| application directories
| app_data directory
| CodeIgniter system symbolic link
| application symbolic link
| public_html directory - or whatever you want to name it
Lastly I create a directory named 'app_data' where I put the system logs, all CI file caches, and all user file uploads. This allows me to replace system directories without fear of loosing that data.