If I wrote
1) a C# SQL database application (a simple program consisting of a GUI over some forms with logic for interfacing with the SQL database)
2) for home use, that doesn't do any network communication
3) that uses a simple, reliable, and appropriate SQL database
4) whose GUI is properly separated from the logic
5) that has complete and dependable input data validation
6) that has been completely tested so that 100% of logic bugs were eliminated
... and then if the program was installed and run by random users on their random Windows computers.
Q1) What types of technical (non-procedural) problems and support situations are most likely to occur, and how likely are they?
Q2) Are there more/other things I could do in the first place to prevent those problems and also minimize the amount of user support required?
I know some answers will apply to my specific platforms (C#, SQL, Windows, etc) and some won't.
Please be as specific as is possible.
Mitch Wheat gave me some very valuable advice below, but I'm now offering the bounty because I am hoping to get a better picture of the kinds of things that I'm most reasonably likely to encounter.