The outbound link tracking does not work if you are linking to a domain with a two part TLD, e.g. .co.uk domains.
Changing the ga_get_domain function to the code below resolves the issue for me:
$hostPattern = "/^(http:\/\/)?([^\/]+)/i";
$domainPatternUS = "/[^\.\/]+\.[^\.\/]+$/";
$domainPatternUK = "/[^\.\/]+\.[^\.\/]+\.[^\.\/]+$/";
preg_match($hostPattern, $uri, $matches);
$host = $matches[2];
if (preg_match("/.*\..*\..*\..*$/",$host)) {
preg_match($domainPatternUK, $host, $matches);
} else {
preg_match($domainPatternUS, $host, $matches);
}
return array("domain"=>$matches[0],"host"=>$host);