Not sure why the pre-command doesn't work, but if you're deploying a BLPackage, you could have an 'external command' at the begining of the BLP to check the OS release.
I would attack it a bit differently. I would use REDHAT_RELEASE as a value for creation of a smart group and deploy against the smart group. This would assure that you were only deploying against RH4 boxes. Then you could select the entire group or only hosts within the group as targets.