After much more digging with mostly fruitless results, I finally have an answer to my problem
SUID is NOT valid for shell scripts in the later Linux kernels.
It can be a security risk and so the later kernels have completely disabled it.
I used to have URL references for this, but I lost them. But trust me, this is the case.
SUID will work for C programs, which is why /usr/sbin/passwd has the SUID bit set.
If you want a shell script to operate with SUID there are a few options:
1) You can make a wrapper for the script in C and set the C program to SUID.
Alternatively you could just write the shell script in C (if you know how).
2) I read that 1) will also work for Perl scripts, although you may need to add
a module or two.
3) Use the program sudo. I think later versions (of RedHat, at least) have this already installed. You can check out http://www.courtesan.com/sudo/
for information on it.