If I understand you correctly, you can run either of the first 2 scripts separately, and they work OK. It is only when you try to run them using the third script that you get the error message. Is this correct?
Your first 2 scripts will not cause system to return 'Failed' if the commands themselves fail. You print out the results of the ->cmd operation, but as long as the command is able to be executed, then Net::Telnet is happy. You should parse the output, and die if it is not what you expect
As was previously mentioned, does the 'reset' in the first script make it impossible for the second script to work for some period of time?
I assume the 'Download Unsuccessful' message is something that can be printed as a result of the second scripts load call. Is it possible to pass debug or verbose options to this command to give more details?