When running IE8/IE9/IE10 in Compatibility mode and using the Page Editor, internal links from Rich Text fields may have the hostname of the current site added to the URL, therefore making the URLs that are being published absolute instead of relative. This behavior may cause issues in various multi site environments.
As a workaround, the following publish replacer must be added to Web.config. It will remove the hostname from the mentioned links during the publishing operation.
<replacers>
<replacer mode="on" id="publish" type="Sitecore.Text.Replacer, Sitecore.Kernel" singleInstance="true">
<param desc="name">$(id)</param>
<replacements hint="raw:AddReplacement">
<simple find="http://myHostname/~/link.aspx" replaceWith="~/link.aspx" ignoreCase="false" forPublish="true"/>
<simple find="http://myHostname/~/media" replaceWith="~/media" ignoreCase="false" forPublish="true"/>
</replacements>
</replacer>
</replacers>
Instead of the highlighted "myHostname" string, put the real host name that is used to access authoring server.
You can also add multiple nodes if your authoring server is accessed from multiple host names.
An alternative workaround for the issue is described in the following article:
http://sitecoregadgets.blogspot.com/2011/06/ensure-valid-sitecore-internal-links-in.html