Disclaimer: I will ignore the functional requirement and your comments on the other answers and just concentrate on the specific problem.
This particular IE7 problem is caused by using an offset (e.g. top , right , bottom or left ) on a relatively positioned element. If you are shifting a relatively positioned element, then it will basically retain the entire space of its original position. Please note that this does not happen if you compensate for an absolutely positioned element.
Before the left offset is applied, the relatively positioned element, due to its width and proper filling, completely leaves the viewport and, therefore, a horizontal scollbar will be generated. After the left offset is applied to the relatively positioned element, you basically leave the space the same size as the offset on the other side of the offset, still outside the viewport.
A damaged web browser during redrawing, however, detects that nothing is visible outside the viewport and, therefore, hides the scroll bar again. However, IE7 is not so smart and retains the scroll bar.
In the end, using left offset was technically the wrong decision. You should use margin-left instead of left in the first place. Unlike offset, the margin does not leave empty space in the initial position, but actually pushes the entire element to the desired position.
So here is how your script is fixed:
$('#el').css({ 'width': document.body.scrollWidth - 200, 'padding-right': 200, 'margin-left': (-1 * (document.body.scrollWidth - 322) / 2) - 1 });
By the way, I am wondering how is float: left; makes sense in this design, in which you apparently want to simulate a 100% width. This will probably be for other purposes not visible in the specific example.