Not an expert with PHP in CLI mode (but I think it should read /etc/php.ini to find where the modules are placed). One possibility is that in command line mode, the UID running php may be pointing to a stale PHP.
Try using the sudo command as root to find if the UID is pointint to the right php executable. First try to see where apache is pointing to first. Here I am assuming apache as the UID for your apache process (you will have to do this as an su/root)
sudo -u apache which php
On my system it points to /usr/bin/php
Then, look at your cron process. Is this particular cron process a user cron process or a daemon/root cron job?
sudo -u whoeverrunscron which php
And see if it is pointing to a stale copy of php or the same one as apache is using.
On my default RH9 install (with PHP 4.2.2) /usr/lib/php4 contains the .so files and it's owned by root and allows everyone to read and execute.