This might have to do with SELinux. Basically, SELinux gives you more control over what processes and daemons can do... a sort of boundary system that goes beyond the normal user/group permissions. It can be helpful for fine-grained control, but it can get in the way, sometimes.
There are ways to turn it off (see http://linuxconfig.org/how-to-disable-selinux).
But, there are also ways to fine-tune the settings (see: http://sheltren.com/stop-disabling-selinux) which might be better in the long run. You could also try a different distro if you aren't tied to CentOS.
EDIT:
Also, if this doesn't have to do with SELinux, as sepp2k mentioned in the comments below, you may want to take a look at the section titled "Execute Permission" on this file and directory reference guide by Wayne Pollock.