All well written answers already. I want to add some skills required to work with customers:
- understand their problem
- thoroughly undertand their problem
- think outside of the software/computer box
- think of a solution and let them 'discover' your idea
- think long term and short term and be able to give advice to the customer in what to go for first and what next
- be able to explain features
- how to use your software given difficulties or exceptional situations that happen in everyday work
If you get the chance, learn scrum or any other lean way of working which works for both you and the customer.