LaTeX and most related programs follow the general approach of looking for their data files in three distinct places: personal files, supported files, and unsupported files. The programs also search in this order, so that unsupported files cannot accidentally override supported ones, but you can override the default data files with personal ones. In the following tables, pathnames which contain // will be recursively searched at that point---be careful what links you put in your personal paths, as they may take a long time to search.
Note also that most programs will search first in your current directory, so any files you have in the same directory where you are working will override any files of the same name elsewhere on the system.
If you want the down and dirty details on exactly what paths are being searched, you can examine the following file, from which the system generates its search paths at runtime:
Note that in the following sections, the data is organized in tables. Currently the latex2html converter translates these as inline GIF files, so if you're using a text-only browser, such as lynx, you will be unable to see them. If this is the case, you can also look at a DVI version of this file, located at