Could be a bunch or "why"s, but these are the most frequent ones:
-You must set your “Active Build Configuration” to either “Deployment” or “Release” (menu “Project”).
-There is something in your system which is not in the another machine (for example, a framework which is in your OS 10.4 machine, but not on the 10.2 one).
-The app was somewhat corrupted while travelling to the other machine (eg, it lost execution permission flags). Try enclosing the app in some kind of package, such as a “.dmg” or a system-based “.zip” file (would require Panther or higher in both machines).