So I have a non-jQuery solution to this problem, but I would rather use jQuery if there is a way, and also I am very curious as to why this is happening.
I have a Facebook iframe application, and I am using Facebox to dynamically load a some XFBML in an on-page pop-up.
Now the XFBML I have loading happens to be the fb:serverfbml tag, which creates an iframe pointed at Facebook and renders the FBML. Which essentially means I need to dynamically add the FBML and then re-parse the XFBML after I display the popup. So I have code that looks like:
var App = {};
App.inviteFBML = '\
<fb:serverfbml style="width: 300px; height: 225px;"> \
    <script type="text/fbml">  \
        <fb:fbml>  \
        </fb:fbml>\
    </script>\
</fb:serverfbml>';
App.inviteFBMLHolder = "<div id='invite_holder' style='width: 300px; height: 250px;'></div>";
App.showInvitePrompt = function(){
    $.facebox(App.inviteFBMLHolder); 
    document.getElementById('invite_holder').innerHTML = App.inviteFBML;
    FB.XFBML.Host.parseDomElement(document.getElementById('facebox'));
};
Now the above code works, however notice that I am using
document.getElementById('invite_holder').innerHTML 
rather than
$('#invite_holder').html();
If I use jQuery's .html function it actually restructures my HTML before inserting it. It restructures it to the following:
<fb:serverfbml style="width: 300px; height: 225px;"> 
</fb:serverfbml>
<script type="text/fbml">  
    <fb:fbml>  
    </fb:fbml>
</script>
I assume it is doing this because it contains non-standard tags, but is there any way to have jQuery not reformat my string before inserting it?