Hola,
te explico un poco como lo haría yo. Primero, el orden de los div es importante, hay que poner los tres div, primero el de la izquierda, segundo el de la derecha y tercero el del medio. Despues los tres div debes ser display: block. Al primero le pones float: left, al segundo float: right y al tercero no le pones float y le pones overflow: hidden. Y asi debe funcionar correctamente. Te dejo el ejemplo:
http://jsfiddle.net/mbm150/hj99y0es/
Para que funcione bien, en el div de la derecha, o le pones display:none cuando no este, o no le pones width y se la pones a la imagen interior (tampoco padding), asi cuando no hay imagen su width es 0 y se oculta.
Saludos.