How do I launch an app at start up but as a specific user?
If you just have two users, you can auto login as Bill, have Bill's account auto-launch multiple apps (see launchd, or via the GUI under User Accounts), and after a timed delay switch users (again, launchd or an Automater App + "sleep 30;" + this), returning you to the login screen. You now manually log in as Ben.

If you want multiple apps running under multiple user accounts in the background, it gets a bit more complicated. Please clarify if this is the case.