I've had to write a VB program at work before, nothing hard just a Spyhawk keyboard tester, that reads values the keyboard sends to the PC via RS232. Once I'd figured out how to use RS232 (which just required custom control) writing the program was fairly straight forward, the problems started when they wanted me to distribute it with an installer.
Instead of writing my own program I used the MS Installer wizard that came with VB and the installer program created was very bloated and buggy (else I could've fitted the whole thing on a floppy). I burned it to a CD and added autoplay but the fucking installer fucked on half of the machines they tried it on, after trying to correct the problem myself I gave up and wrote a good olde batch file installer which did the job in no time at all.