We have a C++ library that we provide to several different clients. Recently we made the switch from using raw pointers in the public interface to using boost::sharedptr instead
You could use the boost copy utility to build a custom version of boost which had only the smart pointer class.
Since the smart pointer class is a header-only library, this should result in a few headers that you could include with your library.