Nick
Please look into the new callbacks feature.
ANother way to look at this would be the new clipboard and related items packages. With clipboard you could blog ANY object by adding it to the clipboard and then taking the clipped items and adding them to the weblog post. THis is much more flexible and many times easier to implement.
I don't think we want to even go to all the trouble of service contracts here. I see much more potential with the clipboard model. It works by including a clipboard UI in the subsite master template. Every page (on HEAD) that has an interesting object sets an ADP property of "displayed_object_id". This way the clipboard can find the object that is currently being viewed.
I think this approach is so much better, since it can work for any object in the entire site, and requires basically no coding changes to any packages other than enabling the clipboard in the subsite master template. You can see examples of this in the cop-ui package in CONTRIB.
So if you can't work with this code from HEAD, I suggest doing the simplest thing that could work, with an eye towards upgrading to take advantage of the flexibility that will be available in OpenACS 5.2.