I don't think you can do exactly what you want. I.e. have the Eclipse/STS launch an external tool to do diff/merge. The only way I can think of doing what you seem to be asking for would be to create an eclipse plugin that contributes its own Team Provider. Eclipse is extensible and allows alternate 'Team Providers' to be implement. This is how you can get different SCM tools support in Eclipse (GIT, SVN, CVS etc).
I don't think this is what you want. Technically it is possible, but a lot of work.
This doesn't mean that you can't just use an external tool however. I do it all the time. I use both some of egit (GIT team provider for Eclipse that comes with STS) as well as commandline git and gitg for pushing, diffing, branching pulling etc.
But I use these commandline tools on the commandline (i.e. from a separate terminal Window).
This works relatively well because egit is smart enough to synch up its state automatically after you run commands outside of Eclipse and return to your workspace.
I only have experience mixing commandline tool use with Eclipse for git, so I don't know how well it works for others (SVN, CVS etc.)