run your html through nl2br then use str_replace or eregi_replace if you want it case insensitive.
something like this should work, if you want it to be more flexible of spaces then I'd suggest using eregi_replace():
$temp = nl2br($mysqlrow->data);
$temp = str_replace('<ul><br />', '<ul>', $temp);$temp = str_replace('</li><br />', '</li>', $temp);
This is just how I would do it, but you said your were against eregi_replace before, so do what you want. Hopefully this post'll look ok, if not, hopefully you'll get the idea, a prevview would be nice for these forums. 🙂