Consistent organization is important when building code that uses multiple external and internal libraries. It all starts with scripts that are used to setup the build environment. The scripts need to accommodate customization on per project, per role (developer, scripter, artist, etc), per user and perhaps ever per computer basis.
Read Organization of Build Environment Scripts: it describes how scripts for setting up the build environment are laid out and how they are invoked allowing for overrides as needed.