What's the best way to make sure external URLs aren't interpreted as relative links?
Using Craft, you could go two ways:


Make your own field-type, that handles the url in PHP and appends http:// if needed (Create a plugin for that)
Check the url for 'http' in your template, and if needed prepend it:

{% set url = entry.url | slice(0,4) == 'http' ? entry.url : 'http://' ~ entry.url %}



Be sure to use the {% cache %} tag if you use option 2, so the check only has to be done once.

Edit: You could use this plugin to pre-validate your urls.