I have only seen this happen with the AI in control of one of the fleets. In PBW games with two human players trying to attack each other, the fleet with the lowest ID ship in it will move first, the other fleet won't move at all, and they'll fight.
The only sure ways to prevent this in single player are to make your ships faster or slower than the enemy, or to let the enemy fleet come to you.
God, I hate that. The sucker got away. I've tried all sorts of things. Stutter step, zig-zag, sending other ships as fodder to try to break the sequence, etc. I think breaking up the fleet would be the worst thing to do because he could take out my fleet 1/2 at a time.