really funny what today's browsers try to do for you. this is actually not a php problem, but something the browser does.
§ is the html version of §, and even though there is no semicolon, browsers may decide that you wanted a § (IE 5 does this, too).
try using
echo "<a href=\"index.php?action=site&amp;sect=privacy\">Privacy</a>";
EDIT: sorry for not noticing the forum parsed the html entity. I fully agree with simulant that it would make sense to turn this off.