This is not directly related to GUI design or programming, but The Psychology of Everyday Things is a good book to read.
It is a general look at how things are designed and how they fail. The concepts in this book, although not directly applicable to GUI's, do apply. In fact you could say they apply to all instances of user centered design.
http://www.amazon.com/Psychology-Everyday-Things-Donald-Norman/dp/0465067093