I've written a plugin to limit the visibility of posts based on category. To use it, you edit the user options at the top of the code, setting levels for each category. If a given user doesn't have a high enough level for any category of a post, they will either see nothing, or see a message (depending on what you've specified).
You can think of this plugin as viewlevels, except for categories instead of individual posts.
I will post any updates on my code page.