Good article Steve, this is an area that is too often overlooked. Just a few thoughts on the data side : My personal preference for demo data is to use a backup of production data and restore it onto the demo server, although this obviously does create issues with any personal data, which needs to be changed if it's going to be demo'd to clients. An advantage of using 'live' data is that you avoid the temptation of rookie developers to put in nonsense names. I once saw an extremely uncomplementary reference to a Mr Bin Laden, along with some personal, antagonistic comments appear courtesy of a very immature developer on a demo server being used at a customer site, not too long after 9/11. Suffice to say he got a good dressing down from the MD and was lucky not to loose his job. Not saying you won't get anything offensive in production data, but using developer's test data is never a good idea unless you have time to pre-vet it.
All sorts of nonsense creeps in.
With regard to separate boxes, I think you have to consider your target audience. Whilst I like the ethics of giving the customer a 'real' demo on the same box as a production system so that they know how it's going to feel in use when they've bought the software, I think this is fine if you are dealing solely with a technical audience who understand that occasionally you get locks, have backups going on in the background and have business users running hour-long reports.
Throw in a non-technical manager who's going to get inattentive at the first mention of anything remotely complex, and I think you have to consider a separate system. These are the sort of people who will get bored waiting more than a couple of seconds to see what they want, and will not be able to appreciate the technical reasons behind why the system is occasionally slow. Nor will they want to know. Unfortunately they are invariably also the ones holding the purse strings, so if you're up against competition in a tender, I think you have to consider the technical ethics against the risk of losing business to the competition because they've put their demo on a fast, non-shared machine. I don't like it, but at the end of the day, making the sale pays your wages, so you have to ensure that demo's going to be as impressive as possible.
If I was selling my car, I'd give it a good once-over to make it look its best. I know it's going to get dirty in practice, but if it's clean when it's seen it's more likely to sell. IMHO.