I have read/write on the tnsnames.ora file (I've done minor edits as needed). I'm not sure though if .profile should be pointing from the UNIX environment to somewhere within the UNIX environment or to a location on the Windows box I'm operating from ...
A tnsnames.ora file is read by the Oracle listener when it starts on the computer where the database resides.
Another tnsnames file is read by the client computer to initialise the client-server session.
i.e. Each computer has its own copy.
The client and server copies should be consistent for the section relevant to that connection. They don't have to be identical because a server could offer multiple listeners for different purposes.
I can't see why tnsnames.ora would be mentioned in a unix .profile - even for account "oracle". The unix .profile is used to initalise a "telnet" session. It would be more ususal to mention tnsnames.ora in a script which starts the listener in background.
As I recall, it is configured via environment, so .profile is fair game to support all oracle products launched in the session, like SQL*PLUS or PRO-C compiled applications. Configuring SQL*Plus
In your case the TNS_ADMIN is used to locate the OracleNet configuration. It should point to where your OralceNet services are defined: the tnsnames.ora (and eventually sqlnet.ora, ldap.ora etc.) files on your client.
If you unset TNS_ADMIN and set ORACLE_HOME correctly, your client will search for tnsnames.ora
in the $ORACLE_HOME/network/admin directory on your client machine (and in other places, but I don't think you need these details now).
That's what the first link above says. Since you probably need ORACLE_HOME even worse, why not use the default location? It might not be right, the owner might be on vacation, or you like config bits elsewhere from installed code!