So you are creating a Stand-In (SharedA) for which deletion is okay. Even though this is kinda awkward, I guess it's necessary to work with your legacy API. To slightly improve this: Allow construction of SharedA from a shared_ptr, but not the other way around - and then only use the SharedP when you absolutely must:
int main()
{
HelpfulContainer helpfulContainer;
boost::shared_ptr sa1(new A(1));
// deletes its parameter, but that's okay
helpfulContainer.eventHorizon(new SharedA(sa1));
}