<p>Are there any drawbacks to using the STL or templates. Are there any situations for which they are inappropriate.</p>

First, you should use probably use them if they help you solve your problem.  Templates are a very important part of C++ and have been part of the standard for years.  STL is very powerful and fast at run time and should be supported on all decent compilers, but of course there are issues.
If you have a really old compiler, STL might not be completely supported.
The thread-safety of the STL implementation might be work for your application
Templates can lead to slower compile-times and possibly larger executable, especially with older compilers.
Compilers often produce incomprehensible error messages on code using templates.
just to name a few, but the drawbacks of not using them are likely to be much greater.