ok to be fair,

Ian Spence better explained the reason for the height= value. Thanks Ian.

i can see why you need it in the code as an IE safety net as well as a VARIABLE value. my bad on that one.

sooo... 2 possibilities come to mind:

first, the HTML solution:

Code
...
<!--[if lt IE 7]>
	<style type="text/css">
		.ubbcode-iebody {
		height: {$height}em;
		}
	</style>
<![endif]-->
<div class="ubbcode-body ubbcode-pre ubbcode-iebody" >
...

second, the css one.

you can also avail yourself of the IE only processing of the expression() property in the css.

Code
...
.ubbcode-body{
   height:auto; /* for non-IE */
   height:expression(*[computational javascript] or [150+"px"]); /* for IE */
   ...
   }
...

* this javascript can be DOM aware and do the '\n' counting in the container div's innerHTML to determine height in ems or px (like do_markup() does now)

the height:expression(xx); will be ignored by all but IE.

keep in mind that it's not for just height.. it's for much more..

Linky Poo to Microsoft dynamic properties.

ps: these ideas can also be applied to the avatar height/width issues as well (imho)

2c