In ASP.NET if you want to point a tag to a certain directory you usually need to make it a server control and use the ~
An example of this is when pointing to a CSS file.
<link href="~/Styles/HorizontalMenu.css" id="hm" runat="server" rel="stylesheet" media="screen" />
With 2.0's master pages someone thought they'd make it easy on us dev's if they created a way to rebase relative URLs.
Sure enough if you put in
<link href="Styles/HorizontalMenu.css" rel="stylesheet" media="screen" />
the Master page is smart enough to put in the ../ part before the URL ("Styles/HorizontalMenu.css" becomes "../Styles/HorizontalMenu.css") if you go in an extra directory on your site. Works the same for images as well, except you will need to keep the runat="server" attribute. Neato.
CSS files don't have any fancy programming so what you need to do there is provide a relative path to a resource from the actual file.
background: #F9F9F7 url('gfx/bg.gif') repeat-x;
Will point to the gfx folder that is in the same folder that your css file resides.