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.