O que você descreve no seu exemplo não é apenas uma rede de relacionamentos, mas uma rede de "fluxos" entre todos os grupos.
Como você sugeriu em a) (e como Jeromy também disse), seu gráfico provavelmente será uma visualização de um grupo (ou nó) vinculado a outros grupos. A maior parte do meu conhecimento desse assunto é visualizar fluxos entre espaços geográficos, mas muitos dos mesmos problemas ainda se aplicam.
Acho que este artigo faz um bom trabalho resumindo as técnicas de visualização no mapeamento de fluxos.
De dados de interação espacial a informações de interação espacial? Geovisualização e estruturas espaciais de migração do censo de 2001 no Reino Unido
por: Alasdair Rae Computers, Environment and Urban Systems, vol. 33, n. 3. (maio de 2009), pp. 161-178. (PDF aqui )
Normalmente, visualizar fluxos no espaço geográfico tem três problemas principais. Uma é que é difícil distinguir entre fluxos de entrada e saída. A segunda é que as longas filas tendem a dominar o gráfico. A terceira é que a sobreposição ou excesso de fluxos tendem a fazer o gráfico parecer muito barulhento.
O segundo problema pode ser resolvido, no entanto, você organiza os nós no seu gráfico (como Jeromy sugeriu nós de cluster juntamente com relacionamentos fortes). Também pode ser mais fácil usar pequenos gráficos múltiplos para distinguir entre fluxos de entrada e saída e fluxos recíprocos (ou seja, mapeie seus nós para um espaço específico e, em seguida, tenha gráficos separados exibindo fluxos de entrada e saída). Eu não vi nenhum exemplo de fluxo em redes como você descreve, então não sei se os gráficos auto-organizados têm o problema de sobrepor linhas.
Se você tem experiência em programação em Python, pode querer verificar o pacote NetworkX . (O pacote Gephi ao qual está vinculado também parece incrível).
Isso é de natureza semelhante às perguntas levantadas no fórum GIS stackexchange, e aqui está uma pergunta com respostas nas quais você pode estar interessado.
Boa sorte