buenas,
lo que ocupas es mas bien tema de css o rendimiento (rendering) del navegador. ¿quien de los dos navegadores esta en lo correcto? no estoy seguro. por norma, las unidades relativas computan su valor en base a otro valor. ese valor base se identifica si existe alguna propiedad definida siguiendo el orden jerarquico de los elementos. por ejemplo, en el caso de las dimensiones (width | height) su valor predeterminado es auto. lo que significa que ocupa un tamaño automatico. asumiendo que tienes la siguiente estructura...
Código:
<body>
<div>
<p>
<img />
</p>
</div>
</body>
un 100% de alto en la imagen (img) indica que va ocupar el alto de su ancestro (p). en el caso de firefox, si el ancestro tiene una altura definida entonces el elemento ocupara la misma altura que el ancestro. si el ancestro no tiene altura definida, entonces el elemento -segun las pruebas que hice- no cambia de dimension. nota: estamos hablando especificamente de la altura. el caso de chrome es distinto. en lugar de detenerse en el primer ancestro para calcular la altura, el motor continua hasta el elemento mas alto en la jerarquia (html) si ninguno de los ancestro tiene definido una altura. en este caso, el elemento toma la altura del viewport (area del navegador donde se muestra los documentos).
conclusion: todo dependera del resto de los estilos que tengas aplicados. no soy muy savvy en css, por lo que no sabria como resolverlo adecuadamente. al menos la explicacion debe servirte para comprender que esta sucediendo.