\begin{figure}[!h]
とするか、float.styのHを使ったらダメなの?
あとは、placeins.styの\FloatBarrierを使うとか