SharePoint alerts contain links back to the item(s) that triggered the alert. If the web app was extended to another zone, or if the server was migrated and the URL has changed, the alert will still have the original url. When a user creates an alert, it saves the url they were on at that time in the content database, it does not determine the url for the server on the fly. When the alert is sent, that value is fed from the content database to alerttemplates.xml. So, one way to update the url for the alerts is for the user to go to the properties of an alert (from the welcome user menu my settings my alerts edit an alert) and click ok. They don’t need to change anything, but by going into edit mode and re-saving it, it will re-set the url.
Or, if you need to change the URL for all alerts en masse, then there is an updatealert STSADM operation for that: