La differenza tra «tra» e «fra» è solamente etimologica: il primo deriva dal latino «intra» (dentro), il secondo da «infra» (sotto) ma nel passaggio all'italiano ha mutato il suo significato, quindi nell'uso sono perfettamente intercambiabili; come giustamente diceva Maurilio, l'unica accortezza è quella di evitare cacofonie con le parole vicine, quindi meglio «tra fratelli» che «fra fratelli», «fra treni» che «tra treni» e cosí via...
Tra «qui» e ‹qua», e simmetricamente anche tra «lí» e «là», e tra «costí» e «costà» (*), invece, una certa differenza c'è. «Qui», «lí» e «costí» definiscono un luogo piú ristretto, «qua», «là» e «costà» definiscono un luogo piú indeterminato, insomma «qua» è un intorno di «qui»; ad esempio se sei una stanza: «che caldo che fa qui» (in questo punto della stanza), «che caldo che fa qua» (in questa stanza). Ma sono differenze sottili, questioni di ‘lana caprina’... :-)
(*) Nell'italiano standard si sta perdendo la differenza tra «costí» e «costà» (luoghi lontani da chi parla, ma vicini a chi ascolta), e «lí» e «là» (luoghi lontani tanto da chi parla quanto da chi ascolta), ma è comunque bene conoscerla.