I upgraded my RAM from 2GB to 4GB but Windows tells me I only have ~2.8GB.

This is normal and expected behavior and occurs with XP 32-bit and Vista 32-bit operating systems due to how memory is mapped. Depending on how much and what kind of hardware is installed in the system, 4GB will report in Windows System Information as anywhere between 2.5GB and 3.5GB. Windows XP 64-bit and Vista 64-bit are able to utilize all 4GB of installed RAM for operating system use.

Refer to knowledgebase articles by Microsoft here: (MS-KB 929605) or by Crucial (Crucial-KB 4251) for more information.

Note: Vista SP1 will change the reporting scheme of the installed RAM. More details here.