Трудно сказать, не видя ваш HTML, но я бы сказал, вероятно, потому что у вас есть некоторый пустой пробел в элементе, и IE не рассматривает это как текстовый узел, в то время как FF делает.
Я полагаю, что на самом деле более строгое соблюдение стандартов рассматривает любой пустой пробел между тегами как текстовый узел, но IE не соответствует.
Вы можете сделать:
var htmlstring = element.innerHTML;
// use the native .trim() if it exists
// otherwise use a regular expression
htmlstring = (htmlstring.trim) ? htmlstring.trim() : htmlstring.replace(/^\s+/,'');
if(htmlstring == '') {...
Или просто избавьтесь от пробелов в разметке HTML вручную.