No workarounds required if it's enough just to have a lot of up to 3 GB processes (arbitrary, upper 1 GB was typically reserved for the kernel and memory mapped peripherals/IO, like GPU, USB, SATA). Of course if a single process wanted to access more, that would have required remapping or multi-process approach. Or special hacks like Windows AWE [0].
All in all, not ideal, but I'm sure we would have managed with it a bit longer.