Você não precisa nomeá-los coisas diferentes. Você pode ter uma coluna FAM_ID em FAMILY, uma coluna FAM_ID em DOCUMENTS e uma coluna FAM_ID em CONTACT.
Neste caso, nomeá-los como a mesma coisa deixa claro que eles se referem à mesma coisa. Mas você também pode criar outra convenção de nomenclatura própria, se quiser.
Por exemplo, eu uso algo como
family_ID
na tabela de família e contact_familyID
, document_familyID
ao se referir a ele nas tabelas de contatos e documentos. A única desvantagem de nomeá-los da mesma forma, até onde posso ver, é que ao fazer junções você não pode apenas se referir a eles pelo nome da coluna, você precisa alias ou se referir a eles por tablename.columnname.
Edit:Acho que descobri o que você quer dizer com não poder ter o mesmo nome. Este é o caso quando você adiciona um relacionamento de chave estrangeira em uma única tabela, conforme descrito aqui:http://bugs.mysql.com/bug.php?id=46363