Something that I have started doing recently with success...choke up on the racquet a little when you are positioned in the midcourt.
When I find myself drawn in and hitting an approach shot, I choke up on the racquet just a little. That way I can take a good cut at the ball and it shortens the distance that the ball flies. It makes perfect sense. Think baseball...when you want to swing for the fences, you use a heavy bat and take a big cut. When a hitter wants to simply make contact to advance a runner etc., he chokes up a bit (a bunt is nothing more than an extreme "choke up" to guarantee contact with the ball). You certainly won't hit the ball as far. It's simple physics. I started playing around with the idea and have found that it really works. I used to overhit mid-court balls all the time. Now, I don't. Improves accuracy as well. Like I said, it allows you to still take a nice cut at the ball (which gives good spin and keeps the ball from going long as well).
The reverse is also true. When I am pushed back far beyond the baseline, I drop my grip off the racquet just a little bit. Adds momentum and depth.
Also, play with your string tension. That can make a big difference as well.