For programming, your two core pieces of hardware are going to be your processor and your RAM. IDEs are quite typically RAM hogs, and you want the fastest compile times. These two parts play the most critical role, although if you are really into it, and have the cash, a solid state drive is also nice. If you are doing heavy duty graphics, you will need a fast graphics card, however it is highly unlikely you will need anything above a run of the mill card.
As for the place to buy, Newegg is pretty much my defacto site for buying computer parts.
As for two people being able to use the computer at once? You could run a second operating system inside of a virtual machine, but that will obviously hog memory and processing ability.
The only problem with this is having a second mouse and keyboard. I do not know of a way to do this, but technically you could do this if you were to write your own drivers and have the input passed onto the VM in some way.