Why does this Applescript for talking to iTunes fail with timeout for some customers?
It should something like this:

tell application "iTunes"
    with timeout of 1200 seconds
    ...
    end timeout
end tell


Your timeout should be inside the tell block instead before/above/outside of it.

It seems as if you might be setting the timeout for the script itself instead of iTunes which has a default timeout of 120 seconds (all applications have a default timeout of 2 minutes).

This could be failing for a number of reasons besides normal timeouts, such as if the person just upgraded iTunes, and your script opens it for the first time after it was recently installed, it won't be able to execute normal iTunes functions until after closing out of the splash screen that says "Welcome to iTunes version X - Check out all of the new features!, etc."

Also, it's been awhile since I've worked with AppleScript, so I don't recall whether or not if you tell a system application to do something if it automatically opens or not.  If not, it's possible, you may need to Tell SystemEvents to open application "ITunes" (or whatever the syntax is) -- or you could always use the do shellscript command to open the application, in which case the actual shell command would be open /Applications/iTunes.app/ -- which you can verify in Terminal.

The error could also be if the iTunes app needs GUI focus for these operations to take place and the application automatically loses focus while the script is being run when another application is opened or the user clicks away or some scenario of that sort, which your script will need to be able to account for.  In cases such as this, you may want to tell SystemEvents to activate application "iTunes" before any important actions take place.  This will cause the iTunes window to regain focus.

It may actually be this same SystemEvents command (you probably need to check/correct my syntax) that initially opens the application if it is not already open at the time the script is run.