Ok ich weiß jetzt an was es liegt. Das div steckt in einem weiteren div, das noch zusätzliche Angaben enthält. Ich habs mal nachgestellt.
<div style="border:1px solid red; float:left; width:250px; position:relative;">
<div style="border:1px solid blue; position:absolute; left:50px; top:30px;">
<ul><li>Hier steht ein bisschen Text</li></ul>
</div>
Im div steht noch alles mögliche sonst
</div>
Die relative Positionierung des äußeren divs brauche ich um einen eigenen "block formatting context" zu erzeugen. Die ist allerdings daran schuld dass das innere div mit der ul drin dann erst mal versucht, die Grenzen des äußeren einzuhalten. Deswegen wird das "bisschen Text" umgebrochen, damit das div möglichst schmal wird, weil es ja schon nach rechts hin über das äußere div hinaus steht.
Ich schau mal ob ich mein inneres div woanders hin packen kann, damit es eigenständig steht.
Was könnte ich da sonst machen? Kann ich das auch durch CSS regeln?