Here's what I use:
in reply to Overall Directory Organization
All under version control (svn), and Trac.
- bin - cgi-bin stuff
- conf - config files
- devdocs - just like it sounds
- externals - catch-all for support programs
- modules - module hierarchy
- templates - mostly mimics modules hierarchy
- updates - sequentially numbered SQL files to update database structure to "current version"
- install.sh - single command to move everything necessary into "live" /opt/myproject, unlink/relink conf files, reload apache, etc
This layout (copped mainly from some CGI-App docs) works well enough for me, but then my current projects aren't particularly large; YMMV