A 32-bit OS cannot reference more than 3.5G of RAM because of the size of the address. You need 64-bit Vista or XP to see 4 gig or more.
Well, I may repent, but I got 3 gig of memory rather than pay for 4 gig, because of that limitation. And it’s pretty spritely, for the moment at least.
When the hardware supports it, a 32-bit OS can access 4 GB (any extensions aside). Due to legacy reasons, Windows limits the usable memory because the space above 3.5 GB was reserved back when Microsoft thought nobody would have 4 GB of memory.
32-bit Windows also limits the memory available to applications to 2 GB (the other two reserved for Windows) unless you use the /3GB switch at boot, but programs have to be modified to take advantage of that.