En el momento que haces un include estás "cambiando" de lugar la carpeta donde se encuentra el archivo, por decirlo de alguna forma ya que queda incluido dentro del flujo del script que lo llama. así por ejemplo:
Si principal.php y en la misma carpeta hay principal.css llama a subdirectorio/programa.php, el programa al que llama agarra por defecto el css del principal.
No en cambio si tienes que llamar al programa directamente desde subbdirectorio/programa.php entonces tendrás que incluir el css en subdirectorio/principal.css
Espero haberme explicado bien. pero creo que no....