"How/where does linux install programs."
That is determined by the person who created the rpm package. Usually programs are installed somewhere in /usr or /opt. /usr/local, /usr/bin, and /usr/local/bin are popular directories to install programs. You can find out where a rpm package installs everything with this command:
rpm -ql packagename
"And my last question if i'm instaling from src, how do I upgrade an install I know if I have the rpm I can use -U but how would I do this from source?"
The best way to finesse the problem of keeping track of programs installed from source is to convert them into rpm packages using checkinstall.
http://asic-linux.com.mx/~izto/checkinstall/
The usual method of installing source is:
./configure
make
make install
With checkinstall this becomes:
./configure
make
checkinstall
which creates a rpm package which you then install in the normal way.