* Pay people enough to live comfortably
* Pay people enough that they accept our offer vs competition
* Pay people in a way that feels fair
* Pay people in a way that is transparent
* Pay people in a way the company can afford it
* Pay people in a way that there isn't a risk of huge fluctuations (e.g. currency fluctuations)
Without a doubt the best solution is to pay every employee as if they live in San Francisco, what we call "single-city." That gives high marks on every dimension above...except that it's extremely expensive for the company. Basecamp.com can afford this but I doubt most companies can.
We ultimately went with a formula where we look up the average salary for your title in NYC (the USA's most expensive city), multiply it by some multiplier (to make sure we pay systematically above market), and discount it by the cost of living in your city compared the cost of living in NYC.
When we can afford it, we'll move to a single-city model based on San Francisco.