What's the output of dmesg?
Are you sure it's always at /dev/sda1? It you have other devices (scanners etc show up as SCSI devices), it may be something different.
It can also take a couple of seconds for the device to be "ready". Occasionally, I get a similar error, waiting a few seconds until the device is ready to talk usually suffices.
If you're using 2.6, you can use udev to assign a permanent name to the device. I haven't got around to setting up udev yet, so I can't offer any details.
In any case, you can always label the filesystem and use that instead of /dev/whatever. With ext2/3, you can use e2label:
e2label /dev/sda1 <label name>
The label name can be whatever you want. Then modify /etc/fstab, replacing /dev/sda1 with LABEL=<label name>.
Instead of using the device name or label with mount, it's better/easier to use the mount point, e.g.