That problem shall be there in case the OS is 32-bit.

For RHEL/Centos 4

Install Hugemem kernel.
#yum -y install kernel-hugemem

Thereafter edit grub and make kernel-hugemem as default kernel and reboot the server to let it boot in kernel-hugemem kernel. Once the server is back online, the exact amount of RAM shall show up.

For RHEL/Centos5

Install PAE kernel.
#yum -y install kernel-PAE

Thereafter edit grub and make kernel-PAE as default kernel and reboot the server to let it boot in kernel-PAE kernel. Once the server is back online, the exact amount of RAM shall show up.

The changed kernel type can be set as default kernel in kernel update config as well by updating the same in /etc/sysconfig/kernel:

DEFAULTKERNEL=kernel-hugemem (for RHEL/Centos4)
DEFAULTKERNEL=kernel-PAE (for RHEL/Centos5)