John,
I have not checked all responses- but if your app is pulling a lot of data across the wire, e.g. a full table traverse for an un/partly index optimized select, then an additional user may max "something" out or cause the disk to thrash pulling data from different sections of a very large table. You can also see this sort of picture if a hard drive is getting full.
The Server's Performance Monitor will give you useful stats on disk read times, queues and other measures that may help identify whether the disk is part of the issue.
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1