The best tip I ever came across was from a western trainer. I don't remember exactly what he called it, but basically it is a "shoulder over" or he may have called it "shoulder up". Yep, I think he called it shoulder up.
I invested a lot of time teaching the horse to simply lift its forehand and step to the side. It's not exactly a turn on the haunches, because you're not asking the haunches to remain immobile but it is a clear request to step over with the forehand. As a matter of fact, it's probably easier for the horse to move his shoulders over a step when he's moving.
I didn't take this cue to great heights (my so-called training is always getting interrupted). But the result has been, when the horse starts falling in on the shoulder, I simply give the cue with the inside leg a little in front of the girth. The horse generally says, "Oh! Okay!" And steps back onto the track. Loose rein, no sweating on anybody's part. But the cue has to be solidly taught, from the ground, from the saddle. It also needs to be refreshed occasionally if the response gets a bit dull, but corners and circles became much more fluid.
One exercise is doing "squares". Walk along the rail, halt, give the shoulder over cue with the outside leg. Ask for a step at a time until you are facing the opposite rail. Walk forward, halt at the rail. Ask for the shoulder over with the outside leg, walk the rail, halt, ask, etc., until you have completed a square. You can simply walk randomly, and while walking, ask the horse to take one step over and continue walking. One step, continue, one step continue, alternating which shoulder you are influencing. But teach it solidly in one direction first. "Too many changes of direction makes too many new beginnings for the horse" (Herm Gailey)
But it has to become a learned response. You can't just try to shove the horse back onto the track.
Once you have a conditioned response, hopefully you will have better luck keeping the horse on the track. Ask with the inside leg to move the shoulder back on to the track. Don't hold the shoulder out with constant pressure from the inside leg cue or the rein. Ask, get the response, release.
Remarkably, this little move seems to soften the horse from nose to tail, so it is not an isolated response like it sounds.