Yes, paths can be a real ***** -- and PHP's [man]include[/man] and [man]require[/man] functions behave differently than html path references. In both cases, there is a concept of a current path -- this is the path to the location where the include/require/href exists.
On top of the current path is the idea of an absolute or relative path. Absolute ones start with a / and mean "from the top". Relative paths start without a slash and are appended to the current path.
For include and require statements, you have the further complication of the [man]include_path[/man].
For HTML, you have the further complication of a <base> tag and the fact that image or stylesheet references in a CSS file are evaluated relative to the CSS file and not relative to the document that includes the CSS tag. Also complicating matters is that a browser evaluates href locations based on the URL that was loaded. If your server has some mod_rewrite going on our otherwise uses SEO-optimized urls, a browser may be looking for a file that doesn't exist.