Thanks Draco for your feedback.
Is the event being stolen from IE by your function? That is, is the event being ignored by the browser since you've hijacked the event?
Can you elaborate more on the hijacking of the event? If by this you mean that I've included the event on the function call in the <div id="scroller" onscroll="onScroll(this,event)"> - because in this example I'm not using the event I removed this and it does not affect the behavior either. But still I'm interested in what you mean by hijacking the event. I didn't know it was bad form to do this.
You've already got position:relative; so maybe you've tried absolute already.
Yes i could easily put position:absolute;right:0px; on #buttonBar and then position:relative on #scroller (and account for the space on the bottom with some padding because position:absolute removes the button bar from the normal flow which means it will be on top of the scroll bar) - and then i don't even need the javascript...
however - as i mentioned - that is a better way to solve the same problem, but what I'm interested in is ... what am I doing wrong here, and why is IE 9 not letting me scroll the box??
As for your other guesses:
Additionally, try changing the name of the function to something which does not resemble an event name.
The name of the function is not contributing to the problem. I can change this and the behavior is the same.
Is there any error console in IE9? If, for some reason you've caused an error, I wonder if IE9 will hang.
Yes there is an error console using F12 developer tools (which comes automatically in IE9). That was the first thing I thought of - there are no JS errors. If you put a breakpoint, you can step through the code and on the surface nothing seems to be wrong - except that the horizontal scroll doesn't work.
Try <script type="text/javascript"> just to be pedantic and/or remove the strict specification of your DOCTYPE.
This also does not affect the behavior.
Here is a modified version of the original with the following changes:
Changed doctype to transitional
Added type="text/javascript" to the script.
Changed the function name to not coincide with the event name.
Removed the comment in the CSS
Removed the event argument in the function call.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
#scroller{
overflow: auto;
width:500px;
height:100%
}
#content{
width:600px;
}
#buttonBar{
position:relative
}
#buttonArea{
float: right;
}
</style>
<script type="text/javascript">
function moveTextOver(scroller) {
var buttonBar = document.getElementById('buttonBar');
buttonBar.style.left = scroller.scrollLeft + 'px';
}
</script>
</head>
<body>
<div id="scroller" onscroll="moveTextOver(this)">
<div id="content">Scrolling Content</div>
<div id="buttonBar">
<div id="buttonArea">
Right Aligned
</div>
</div>
</div>
</body>
</html>
Oh - and one more quote 
(I am not willing to get IE9 yet)
Neither am I!! But I use a VM image that I got from a co-worker that lets me use it (I am not even willing to get Windows 7 on my work PC either). Unfortunately for me customers like IE even though I personally hate IE and wish it would just die.