I found the problem to this. The reportdocument object model's printoption.copyfrom method was setting the report's page margins incorrectly. I don't know why, exactly.
We created two objects
objPrinterSettings As New System.Drawing.Printing.PrinterSettings &
objPageSettings As New System.Drawing.Printing.PageSettings
We were settings these values based on the default printer. Margins were fine. We used the copyfrom command
rptDocument.PrintOptions.CopyFrom(objPrinterSettings, objPageSettings) and this was resetting the rptDocument's page settings incorrectly.
To correct. Created a new object, objRptPageMargins as CrystalDecisions.Shared.PageMargins Then before the CopyFrom method, set the objRptPageMargins' top, bottom, left and right margins equal to the rptDocument's page margins. After the CopyFrom method, used the rptDocuments applymargins method to apply the objRptPageMargins back to the rptDocument. The margins are now correct.
rptDocument.PrintOptions.ApplyPageMargins(objRptPageMargins)