As a general "how this happens", an example scenario.
The user installs a standard system including X and Firefox.
graphics/png is installed as a dependency; Firefox and many other programs need it.
Later on, a new version of png comes out and the port is upgraded. The user installs this new version, but does not rebuild everything that depends on png. All those programs are still looking for an old library that went away when png was upgraded.
So what should be done? Several things:
1. Before upgrading or installing a new port, first read
/usr/ports/UPDATING. You only need to pay attention to entries that have been added since the last time you installed or upgraded. Don't pick and choose, just look at all of them. If any apply to your system (ports you have installed or instructions that apply to all systems), do them in order from oldest to newest. Don't install or upgrade anything until you've caught up with the latest
UPDATING changes.
2. When upgrading installed applications, use a port upgrade tool, either
ports-mgmt/portmaster or
ports-mgmt/portupgrade (or the
-devel version). These programs will look for programs that depend on the port being upgraded and rebuild them.
portmaster does it automatically,
portupgrade has
-r.
To fix the problems in post #1, figure out what port provided the missing libraries. Install or reinstall that port, and force the port upgrade program to rebuild everything that depends on it. My first guess would be
lang/gcc46 for most of them.