32-bit Linux uses a system where some ram is "high" an others is "normal". I believe the limit for "normal" RAM is about 1G.
Effectively, "normal" ram is kept permanently mapped in by the kernel, which makes it easier for it to get to it (less changing of page tables etc) - whereas "high" memory isn't (because there isn't enough address space).
The limit may not be 1G, but it's certainly lower than 2G.
In user-space, processes can only allocate about 2G of address space on most 32-bit linux boxes (perhaps 3G on a few?) - this is a major issue for tuning MySQL for large workloads.
I believe some benchmarks have shown running 32-bit userspace on 64-bit kernels to be advantageous, but I've never done any work on it myself.
Mark