It is possible that iptables is refusing to run because the user executing the process doesn't match the owner of the binary. A process can check both the user's real ID, and the effective user ID...
If you write a script in which you put some operation which only root can do, for example reading shadow file etc.. and make that script executable by everyone... ...