I'm currently using Sandboxie, but it has many downsides like game crashes and slow download network traffic to name a few.
I need something like Sandboxie because I'm using a called Aster to allow two Windows users to run at the same time on the same OS on different monitors with different GPUs. While most apps work fine in this configuration Steam only allow a single instance open at any time even if it's installed in 2 separate directories and being run by 2 separate user accounts.
If I could tell the Steam installer to allow multiple instances, then I could install it in a separate directory for each user. From there, I'd also need steam.exe to allow running multiple instances for the same reason.
I'm not sure what else could break in terms of registry entries though. This may be more involved than I think; although, that's why I'm wondering if there's a better way of handling this without Sandboxie.
21 Answer
This is not possible without using Sandboxie or a virtual machine.
This is because the Steam client service (the core of Steam) runs as System and has access to all user directories. You can set the service to run under a specific user instead of Local System, but that will prevent other users from running it.
There is nothing you can do about it. Steam is intended to work as a singleton application.
One reason might be because some games save their player-specific data in predefined folders, rather than in %user%. Such games would still work when running Steam in Sandboxie, as there would be no contention between the instances, since they will be using different files.