The hardest part of programming for me is designing the GUI... I feel I am terrible. How often do you go through GUI changes in your mind or in program? I am gonna redesign GFTE to use the GUI of IE Zone Editor because it fits what I want to do. Any program I write the GUI is the hardest thing for me to design.
MSDN has a crap load of documentation on how technically a good GUI can be made. If you are really interested, you can read some books on good HCI design.