There are a number of ways to achieve this and Drupal was built with this in mind. You should never have to use a full direct path, you should be able to use relative paths or one of Drupal's functions to render the path.
The easiest way to get root is "/". That should work in 99% of situations. If you need more granular control, for instance to find the path to the theme you can use:
or you can leverage PHP and use:
<?php print base_path() . path_to_theme(); ?>/css/some-css-file.css
I just looked through a bunch of my D7 Drupal sites and see that I rarely use base_path() or path_to_theme() anymore. I usually use "/" for a relative path. My D6 sites used a lot of the PHP functions though. I try to limit PHP calls in templates for less server load.
Another thing to keep in mind is that if you link to pages within text content inline, link to the node. ie: <a href="/node/34">this is a link</a> that way unless node/34 is deleted, you will never break the link. I use the Global Redirect module so that when node/34 is called, the url is rewritten behind the scenes to a seo friendly url.
I hope that sheds some light on things for you.