Hola otra vez:
 
Bueno, un height a 90% podría servir en algunos casos, pero si las capas son más grandes o más pequeññas también se desagustarían... 
 
  
Probé usar capas y simular la pareja fieldset/legend, y tampoco fué bien en firefox...  
Código:
 <div class="contenedor" id="prueba1" >
   <div class="fieldset">
      <div class="legend"> Prueba 1 </div>
   </div>
</div>
  Y estas declaraciones:  
Código:
 #prueba1{
 background-color: red;
 width: 200px;
 height: 200px;
 border: 1px solid blue;
}
.contenedor {
 position: relative;
}
.fieldset {
 position: relative;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 border: 2px solid gray;
 margin: 8px;
}
.legend {
 background-color: red;
 text-align: center;
 position: absolute;
 top: -10px;
 left: 10px;
 padding: 0px 5px;
}
  Y también se salía... (Será un bug de firefox... 

 ) 
Por ahora funciona consigo el efecto ayudándome de un script:  
Código:
 <script>
function ini() {
for (var i = 0, Fs = document.getElementsByTagName("fieldset"), total = Fs.length; i < total; i ++) {
 divPadre = Fs[i].parentNode;
 while (divPadre.tagName != "DIV") divPadre = divPadre.parentNode;
 altura = divPadre.offsetHeight;
 Fs[i].style.height = altura - 30 + "px";
}
}
if (!document.all) window.onload = ini;
</script>
  Si no encuentro nada mejor, tendré que usar ese sistema. 
Saludos y gracias.
