Starting with the second question first... I typically deal with the situation as follows, using a generic config file that goes something like this:
switch($HTTP_SERVER_VARS["SERVER_NAME"]) {
case "thisdomain.com":
define(APPS_PATH,"/home/me/myapps/");
break;
case "anotherdomain.com":
define(APPS_PATH,"/usr/home/myapps/");
break;
}
From there, just include your files pre=pending them with your defined APPS_PATH, such as:
include(APPS_PATH."myfile.php");
For your first question, I often get around the issue by deciding what includes rely on other includes, and then only including what's necessary to get the job done. Keep in mind, each include represents a disk-hit, and disk-hits do impact server performance.
Have fun...