Использовать innerHTML не очень безопасно - юзер может всю верстку поломать пока набирает текст.
<textarea rows="5" cols="53" class="medium" name="text" id="text" ></textarea>
<div id="div_with_text"></div>
<script>
(function(){
var input = document.getElementById('text');
var preview = document.getElementById('div_with_text');
preview.style.whiteSpace = 'pre';
input['oninput' in input ? 'oninput' : 'onpropertychange'] = function() {
preview['innerText' in preview ? 'innerText' : 'textContent'] = input.value;
};
})();
</script>