I think you can do this by setting up two different groups (A and
. User #1 is assigned to both groups. User #2 is assigned to Group A only. User #3 is assigned to Group B only.
When you create your topics (1, 2, and 3). You can assign group access rights in the control panel as follows:
Topic 1: Group A (ie Users 1 and 2)
Topic 2: Group A (ie Users 1 and 2)
Topic 3: Group B (ie Users 1 and 3)
That gives you User 1: Topics 1,2,3; User 2: Topics 1,2; User 3: Topic 3 only. If you don't want these people to read the topics they aren't assigned to then uncheck the members and anonymous blocks when you create the topic.
In the story editor, there's a feature to show a story in topic only. They would have to manually change this or you can make a very minor hack in the code so it displays this by default instead of the "show on front page."