Проблема связана с тем, что все три функции, fadeOut, load и fadeIn, являются асинхронными. Каждая из вышеперечисленных функций принимает аргумент обратного вызова (функция), который будет запущен, когда функция завершит выполнение. Э.Г.
$('#data').fadeOut(functionToRunWhenFadeOutIsComplete);
// Если вы определили 'functionToRunWhenFadeOutIsComplete', он запустится после окончания fadeOut.
Вооружившись этим знанием, теперь вы можете решить свою проблему.
var fadeInData = function fadeInData() { $('#data').fadeIn(); }
var loadData = function loadData() { $('#data').load('url', fadeInData); }
$('#data').fadeOut(loadData);
Кроме того, вы можете определить loadData, fadeInData как встроенные анонимные функции.