I would recommend using absolute paths. A good way to do this while still being portable is to make a declaration like this in your public_html/index.php:
define('ROOT', dirname(__FILE__));
Then, you can write includes like this which are very easy:
include(ROOT.'/file.php');
Otherwise, PHP checks to see if the file is in the include path as defined by your php.ini. If it's not there, it tries a relative path to the current script. Which is unpredictable and unmaintainable since you may be nestingly including files from different relative locations.
Edit: If you're constantly including a lot of class files, you may want to look into autoloading. It makes everything way simpler if you're programming in an object-oriented style. I have personally never written the word 'include' in my code for a very long time.
Edit 2: You could use the php.ini directive auto_prepend_file
to automatically include a one-line file with the definition of ROOT to each one of your scripts.