Salut,

Je n'ai reproduit ton problème que sur IE, chez moi ça marche sur Firefox.

J'avoue avoir cherché le Javascript quand j'ai ouvert tes sources ! Ta solution est originale, sans pour autant me convaincre, mais c'est un autre débat.

Bref : la seule piste que je trouve à te suggérer, c'est d'ajouter un clear:both dans ta classe espace2 :

.espace2{clear:both;height:20px;}


Pas testé, j'attends ton feedback...
Salut,
Tu dois modifier la valeur de top dans .thumb a:hover .grand comme ceci :
.thumb a:hover .grand{
top:-193px;
}

Le problème c'est que cette solution ne fonctionne pas partout puisque sous Chrome par exemple ton texte contenu entre tes deux images est plus grand du coup ça fausse la hauteur et la correction doit plutôt être de -183px.
La solution serait d'intercaller une div avec une hauteur fixe comme ceci :
<div id="pourbloquer">
    <div id="presentation">
        <!-- tes images et ton texte ici -->
    </div>
    <div id="zoom">
        <!-- tes miniatures -->
    </div>
</div>

#presentation{
height:280px;
}

Et ensuite tu réajuste la valeur du top en fonction de la hauteur définie.