Hmm,
I believe I encountered something like this in my algorithms class. I'm sorry I don't have my old code however I believe what you are trying to do is similar to Kosaraju's algorithm
I did some brief reading up on this on wikipedia: http://en.wikipedia.org/wiki/Strongly_connected_component
I was under the impression however that strongly connected did not imply that every vertex had an edge to every other vertex in the graph. I'm not sure if it's an issue of using "strongly connected" or how you're defining it.
I googled it for clarification and I believe that strongly connected implies this:
strongly connected if there is a path in each direction between each pair of vertices of the graph
ex
a->b->c->a would be strongly connected.
By your definition I believe you are trying to say that:
a->b->c->a && a->c->b->a.
Please correct me if I am wrong. The way you define connected leads to two different algorithms.
@D.Shawley Yes I believe that is true based on "where each vertex in the subgraph has an edge to every other vertex in the subgraph." however based on the definition of strongly connected I believe the algorithm is less specific and more related to Kosaraju's