Wild speculation here, since I can't think of anything else...

If you edited the script in Windows, and ftp'd it to the empeg, there could be miscellaneous carriage returns in the file that are causing the preinit to barf. Make sure that when you ftp the file to the empeg, you set the mode to ascii. It should translate things appropriately. Just in case, you could get a shell on the empeg, mount the drive rw, and try this:

sh-2.03# cat > /etc/preinit.d/M01launcher
#!/bin/sh
echo Starting launcher...
/usr/apps/launcher
CTRL-D
sh-2.03#

Remount, and reboot.