Lots of the answers to C++ questions here contain the response:
"You should be using boost::(insert your favourite smart pointer here) or even better boost::(insert your favourite mega complex boost type here)"
I'm not at all convinced that this is doing any favours to the questioners who, by and large, are obvious C++ novices. My reasons are as follows:
Using smart pointers without understanding what is going on under the hood is going to lead to a generation of C++ programmers who lack some of the basic skills of a programmer. Pretty much this seems to have happened in the Java field already.
Deciding which type of smart pointer to use depends very much on the problem domain being addressed. This is almost always missing from the questions posted here, so simply saying "use a shared pointer" is likely to be at the least unhelpful and possibly totally wrong.
Boost is not yet part of the C++ standard and may not be available on the specific platform the questioner is using. Installing it is a bit painful (I just did it using Jam) and is way overkill if all you want are a few smart pointers.
If you are writing FOSS code, you don't want the code to be heavily dependent on external libraries that, once again, your users may not have. I've been put off using FOSS code on a number of occasions simply because of the Byzantine complexity of the dependencies between libraries.
To conclude, I'm not saying don't recommend Boost, but that we should be more careful when doing so.