Debugging issues at a remote customer site is much more difficult than on your own computer. You have access to fewer tools, your repro steps may be incomplete or inaccurate, and it's difficult to gather detailed information about the customer's exact configuration.
Configuration issues are what make debugging customer problems so painful. No matter how well you test your product, some customer will find an obscure but valid Windows option that breaks your program. That customer will not mention this non-default setting when she reports the bug. You will have to drag the information out of her.
Customers are unhappy describing their configuration. They want you to "just fix it!" without any questions. Unfortunately, that can't be done. But you can at least minimize the number of questions you have to ask with the techniques discussed in this chapter.
The new .NET security model (Code Access Security) is very different from the traditional Windows model. You don't need to be an expert, but you do need at least a basic knowledge of CAS. Otherwise, your code will work on some machines but not on others, and there will be no obvious rhyme or reason to the pattern.