I'm using a modified version of the v5 nav system for normal main world movement, and a simple battle engine (like the one in equanox's rpg demo) for normal random battles. Like wachenroder, the tactics battles are scripted (they happen in set points in the game)
The battles have been a challenge to make, mainly because they're 3d. I've settled for a isometric view, and there's options to zoom in/out of the battle and to rotate the board (basically I made 4 versions of the same map for the rotation... not fun) The battle engine it's self uses a grid system, which works with the amount of AP (action points) your characters have. So, lets say that your character has 10 AP (moving one square on the grid = .5 AP) So I have a method that determines how many squares you can move in any direction, and then makes a target sprite on the farthest move in every direction. From there, you can move the sprite with the arrow keys within the area of movement, and then hit a button for your character to move there.
This takes forever to program, especially when you factor in boundaries (which i haven't quite gotten working yet)