i had similar problem. fedora core 4. hp 1120 mfp. sane works only with root permissions.

i used two files from packet iscan.

first file

/etc/hotplug/iscan-device , permissions = 755, root, root

Code:
================
#!/bin/sh

DEFAULT_OWNER=root
DEFAULT_GROUP=root
DEFAULT_PERMS=0666

USB_SCRIPTS="libusbscanner
             usbscanner
             desktopdev
            "
for script in $USB_SCRIPTS; do
    if [ -x $HOTPLUG_DIR/$TYPE/$script ]; then
 exec $HOTPLUG_DIR/$TYPE/$script
    fi
done

# Activate fallback settings
#
if [ "$ACTION" == add -a "$TYPE" == "usb" ]; then
    chown $DEFAULT_OWNER:$DEFAULT_GROUP "$DEVICE"
    chmod $DEFAULT_PERMS "$DEVICE"
fi
=======================


second file

/etc/hotplug/iscan.usermap , permissions = 644, root, root

Code:
=========================

# Hewlett-Packard | HP LaserJet M1120 MFP
iscan-device 0x0003 0x03f0 0x5617 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
===================================
in the second file actually important and individual for you is 0x03f0= Vendor_Id and 0x5617=Device_Id.

change it for yours. how determine?
# sane-find-scanner

what it does to me. it sets automatically permissions=666 to file

/proc/bus/usb/bus-no/dev-no - this file concern my scanner when scanner plugged. and as i have permissions 666 then i can run

$xsane

as user.

hope this help.