I thought about your question about using agile design at firms. I find that at my company (gelofactory.com), we use agile design processes for retainer clients and iterative design processes for other clients. Clients that have us on retainer for their projects, are more receptive to taking time to collaborate and circle back to designs or code.
It also helps if the project doesn't have a hard deadline that we need to meet. For projects that have phases and several launch dates for feature sets, we use agile design processes, just out of habit.]]>