Why are different libraries searched for in tensorflow, even though both were installed the same way?
I would say you have a broken CUDA installation somewhere in the library path. It is libcuda.so that has a dependency on libnvidia-fatbinaryloader.so, so maybe the symbolic links point to a library that no longer exists but was installed before.
You can find this information by running the ldd command on the libcuda.so file.
I built tensorflow from source and got a *.whl file that I could install on my pc with pip install *.whl. Now in the virtualenv where I installed it I can open python and do import tensorflow without a problem and also use tf. Now I tried to install this same wheel on an other pc in a virtualenv and it worked successfully, but when I try to use import tensorflow in python I get: 
ImportError: libnvidia-fatbinaryloader.so.390.48: cannot open shared object file: No such file or directory
Now I actually do not have that file on the other pc, but after checking my own pc I also don't have it here. I have on both pcs libnvidia-fatbinaryloader.so.390.87. On both pcs the LD_LIBRARY_PATH points to the directory with that version. 
How can it be that tensorflow searches for version 48 on the remote pc while searching for 87 and finding it on my pc, even though they are both installed with the same whl file? Is there a config that I need to adjust what version it should search for?