I know that new-ing something in one module and delete-ing it in another can often cause problems in VC++. Problems with different runtimes. Mixing modules with staticly lin
If you're concerned, use the form of shared_ptr constructor that takes a deleter argument. The deleter can call back into the module that allocated the object so that the delete occurs in the proper context.
Boost's documentation claims it is 100% compatible with TR1, so hopefully there's nothing misleading about this:
http://www.boost.org/doc/libs/1_37_0/libs/smart_ptr/shared_ptr.htm#constructors