Si dices que funciona con el float: left; puedes poner esto:
Código HTML:
<div style="clear: both"></div>
antes del </ul> para que te lo meta dentro del div. Quedaría así:
Código HTML:
<div>
<ul>
<li style="float: left">Hola</li>
<li style="float: left">Hola</li>
<li style="float: right">Hola</li>
<div style="clear: both"></div>
</ul>
</div>