I fixed this problem by creating a clone of FormServer.aspx for FireFox called FormServerFireFox.aspx which has:
<body style="margin: 0px; overflow: visible;">
I also created FormServerRedirect.aspx which redirects to FormServerFirefox.aspx for Firefox browsers:
<%@ Page
Language="C#"
%>
<%@ Register Tagprefix="InfoPath" Namespace="Microsoft.Office.InfoPath.Server.Controls" Assembly="Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="Microsoft.SharePoint.ApplicationPages" %>
<%
SPSite spServer = SPControl.GetContextSite(Context);
SPWeb spWeb = SPControl.GetContextWeb(Context);
string page = "FormServer.aspx";
string query = Request.RawUrl;
if (Page.Request.Browser.Browser=="Firefox")
{
page = "FormServerFireFox.aspx";
}
int index = query.IndexOf("?");
if (index >= 0 && index < query.Length) query = query.Substring(index + 1);
SPUtility.Redirect(page, SPRedirectFlags.RelativeToLayoutsPage, Context, query);
%>