Без тестирования этого, я почти уверен, что вы захотите:
shared_ptr<shared_ptr<T> > o(new shared_ptr<T>(new T()));
Редактировать: забыли «новое» после первого «(», и исправлено нестандартное использование >> вопределение шаблона. (по крайней мере, не стандартно до C ++ 0x)