I think this means the problem is what field you are using to distinguish your "detail" groups (Group 3). You wouldn't get two instances of Detail 2 if you grouped on a unique field. Also, where are you placing your subtotals? Your last description is confusing, since if you did add a Group 3, it would look something like this:
Group Header 1
Group Header 2
Group Header 3 - Instance 1
Detail 1a
Group Footer 3 - Instance 1 subtotal
Group Header 3 - Instance 2
Detail 2b
Detail 2c
Group Footer 3 - Instance 2 subtotal//etc.
It almost looks like the field you grouped on for Group 3 might be one that can represent a parent or child relationship--and that's why 2 is getting nested within 3. Or are you using only part of a field to group on, e.g., "starts with 'C'"? It would help if you provided more descriptive information about the fields you are grouping on.
-LB