Take a look at the downloads page and select the pre-configured esb-server option.
jbossesb-server-4.2.1GA.zip is the pre-configured esb-server. This is the one I'm posting about, it starts fine, if $JBOSS_HOME is not in my .bash_profile.
You're going to have to do one or the other. If you do choose to hack run.sh, be very careful - $JBOSS_HOME is used in a number of places.
I'm sure you could always create some sort of wrapper script which unsets JBOSS_HOME (or sets it to your ESB Server location) and then runs run.sh, which would mean you wouldn't have to change run.sh every time you start using a new ESB Server version.
Do not change run.sh, edit run.conf and add the following line