Yes I agree and it 's obvious to me that login via client to database A (via Oracle listener) is resulted in loosing environment ($TNS_ADMIN) that 'is why tnsnames.ora could not be found.
We have 3 Oracle Home on this box.
TNS_ADMIN is set /u01/app/oracle/local/tnsadmin
I copied tnsnames.ora to all default destination
$ORACLE_HOME/network/admin for oracle 8.9 and 10. But no success ..

In the end I have done a work around by recreating db link and it works ...

CREATE PUBLIC DATABASE LINK ZAMTEST
CONNECT TO AAA IDENTIFIED BY AAA
USING '(description=(address=(protocol=TCP)
(host=xx.xx.xxx.xxx )(port=1521))(connect_data=(sid=DAISA01)))';

It would be good to get to the truth of it though ...

Thankyou