Хм. Я раньше считал что html5shim в IE нужен только для того, чтобы стили применились к новым тегам. Оказывается проблема не только в стилях, но и в парсинге - без shim'а элементы парсятся как пустые (то есть как <input>). Соответственно, innerHTML к ним не применим.
Но это очень просто исправить. Этот код будет работать в IE8:
<!DOCTYPE html>
<script>
document.createElement('output');
</script>
<body>
<form onsubmit="return false;"
onkeyup="document.getElementById('rez').innerHTML
= parseFloat(document.getElementById('a').value) *
parseFloat(document.getElementById('b').value) * 2;
">
<p>А: <input id="a" type="number"></p>
<p>Б: <input id="b" type="number"></p>
<p>Рез: <output id="rez"></output></p>
</form>
Либо подключить html5shim.