To edit login items, we had to do a lot of different things.
Somewhere 5 years ago we had first class LoginItemsMBS which directly worked on the Dock.app preferences. Not the best, but it worked.
Apple didn't like that, so they made it accessible using AppleScript/AppleEvent. We updated our LoginItemsMBS class to use new APIs (and renamed old method to have Old in name).
With Mac OS X 10.5, we got the LSSharedFileList API, so we got a LSSharedFileListMBS class for the plugins. This way you can edit the login items list. Works nice, but well, it's not working in a sandboxed app.
So now we have even newer ServiceManagement API in Mac OS X 10.7. Next plugin prerelease will have new functions to register a helper app and enable/disable it. This should work nice. Of course, please ask the user about that, so you don't get your app rejected.
You can read more about this here.