Man, I've tried everything, here's my solpart markup:
<dnn:SOLPARTMENU
delaysubmenuload="true"id="dnnSOLPARTMENU"CSSNodeSelectedRoot="rootmenuitembreadcrumb"CSSNodeSelectedSub="submenuitembreadcrumb"
LeftSeparator="<img src="<%=SkinPath%>/tab_left_0.gif" />"
LeftSeparatorActive="<img src="<%=SkinPath%>/tab_left_1.gif" />"
RightSeparator="<img src="<%=SkinPath%>/tab_right_0.gif" />"
RightSeparatorActive="<img src="<%=SkinPath%>/tab_right_1.gif" />"
rootmenuitemactivecssclass="MainMenu_RootMenuItemActive"
rootmenuitembreadcrumbcssclass="rootmenuitembreadcrumb"rootmenuitemcssclass="MainMenu_RootMenuItem"
rootmenuitemlefthtml="<span>"rootmenuitemrighthtml="</span>"rootmenuitemselectedcssclass="MainMenu_RootMenuItemSelected"submenuitemactivecssclass = ""
submenuitembreadcrumbcssclass="submenuitembreadcrumb"submenuitemselectedcssclass="submenuitemselected"submenucssclass="submenu"usearrows="true"userootbreadcrumbarrow="false"useskinpatharrowimages="true"
usesubmenubreadcrumbarrow="false"runat="server"
/>
SkinPath is resolving correctly, and the images are there. I've tried it with the CDATA tag, without, with the special characters standing in for HTML tags and without, using SkinPath and just using <img src='file.gif">, no success. I get the "missing picure" icon in IE, when right-clicked to view properties says "not available" for size, location, etc.
The only way I got it to show up was to use the absolute path, i.e. src='/dnn/portals/0/skins/file.gif', and I know that's not best practice.