Have a look at this code:
CreateShortcut $SMPROGRAMS\Program\Program.lnk $INSTDIR\PROGRAM.EXE
CreateShortcut "$SMPROGRAMS\Uninstall Program.lnk" $INSTDIR\REMOVE.EXE
Now, have a look at this code, which puts the icons in the folder containing the installer:
CreateShortcut Program.lnk $INSTDIR\PROGRAM.EXE
CreateShortcut "Uninstall Program.lnk" $INSTDIR\REMOVE.EXE
Does anyone else think that this code should also work? It definitely seems more efficient and more logical, because it would then work more like the File command. You specify the OutPath, and then not have to specify an absolute path with CreateShortcut.