IL float funziona anche con larghezze variabili, ma se la somma delle larghezze supera il contenitore, il secondo elemento (in ordine di apparizione nell'HTML) viene spostato sotto.

Forse pero` (se interpreto bene quanto non scritto) potresti fare un unico blocco, largo 100%, in cui inserisci il titolo a sinistra e lo sfondo partendo da destra:

codice:
HTML:
<body>
  <div id="titolo">
    <h1>Il tuo titolo</h1>
  </div>
....
</body>

CSS:
html, body {
  width: 100%;     /* altrimenti il 100% del #titolo perde significato */
}
#titolo {
  width: 100%;
  background: url(...path/nomeFile...) no-repeat right top;
}
#titolo h1 {
  ...
}