コンストラクタ(引数有り)はprivateにし、インスタンス化はスタティックメンバ
static shared_ptr<T> create(…); にやらせていたんですが、こういう場合
boost::serialization::load_construct_data の特殊化はどうやるのかがよく分からなくて・・・
コンストラクタがpublicなら普通に配置newを使えば済むのですが。

すいません、帰宅したらコードを整理して上げてみます。