problem in executing a file

All,
I've a script that I'm trying to execute with crontab. But it was not working. Then when i checked executing the script manually, I've found a strange thing. the script executes only with
sh <SCRIPTNAME> and not with ./<SCRIPTNAME>

I'm using Red hat 7.3, and the error that i'm getting is

linux /home/user11/bkp> ./<SCRIPTNAME>
bash: ./BACKUP_EXP: No such file or directory
linux /home/user11/bkp>

Can clues? I'm not getting any problem with other scripts. I'm sure it's got nothing to do with the script, as the script is not getting started. About the permissions, that's also the same.
I tried creating another script and tried executing with ./ and it worked!!
any suggestions?

./scriptname will execute scriptname either with whatever shell your using, or what executable the script refers to, eg: #!/bin/bash
would be the first line in the script and tells your system to use bash to execute the rest of the script. its possible that you are missing the #!/bin/... at the top of your script, in that case try adding #!/bin/sh to have sh execute it. if there is something there make sure what it points to actually exists.

If it were a problem with the #! line, I'd think there'd be some sort of error about "bad interpreter" or the like..

This may sound obvious, but make sure you typed the name of the script right.. watch the case of the letters - BACKUP_EXP is not the same as Backup_Exp

If that's not it and the scripts aren't too large, post the code of the script that's not working and then post the code of a script that is working.. or if they're huge just post the first 10 to 15 lines of each one..