Here is an Apple Script that will let you change your SMTP servers depending on your location. As you might have guessed from the examples below I am forced to use my ISP's SMTP server when I am at home.
on run
set myResult to display dialog "Where are you?"¬
buttons {"Home", "Work"}
tell application "Mail"
if the button returned of myResult is "Work" then
set smtp server of account "Work Email" to ¬
smtp server "mail.work.com"
set smtp server of account "Home Email" to¬
smtp server "mail.home.net"
else
set smtp server of account "Work Email" to ¬
smtp server "mail.isp.com"
set smtp server of account "Home Email" to ¬
smtp server "mail.isp.com"
end if
end tell
end run
[
Editor's note: I have not tested this myself.]