I was sent a link to Caleb's blog about an ajax tooltip popup script.  It's a great article but the script was a little to specific for my uses.  As I played with the script I found some things I wanted to change a bit. 

One issue is I needed to add it to a site with jQuery 1.2.6 (and for reasons I cant begin to understand) upgrading to a newer version of jQuery was not an option.  the other issue was I needed several different tooltips on the same page.  So I rewrote parts of the script. 

; (function($)
{
    $.popup = {
        defaults: {
            hideDelay: 500,
            currentID: null,
            hideTimer: null,
            popupAjaxRequest: null,
            requestUrl: '',
            containerHtml: '<div class="PopupContainer">'
            + '<table width="" border="0" cellspacing="0" cellpadding="0" align="center" class="PopupPopup">'
            + '<tr>'
            + '   <td class="corner topLeft"></td>'
            + '   <td class="top"></td>'
            + '   <td class="corner topRight"></td>'
            + '</tr>'
            + '<tr>'
            + '   <td class="left">&nbsp;</td>'
            + '   <td class="center"><div class="PopupContent"></div></td>'
            + '   <td class="right">&nbsp;</td>'
            + '</tr>'
            + '<tr>'
            + '   <td class="corner bottomLeft">&nbsp;</td>'
            + '   <td class="bottom">&nbsp;</td>'
            + '   <td class="corner bottomRight"></td>'
            + '</tr>'
            + '</table>'
            + '</div>',
            emptyContent: '&nbsp;',
            errorMessage: {
                idReplacementRegEx: '\{0\}',
                errorText: '<span style="color:red" class="smallText">We did not return a valid result for Id {0}.  Please have your administrator check the error log.</span>'
            },
            cssClasses: {
                PopupContentDiv: '.PopupContent',
                PopupTrigger: '.PopupTrigger',
                RequestDiv: '.PopupResult'
            }
        }
    };

    $.fn.extend({
        popup: function(settings)
        {

            settings = $.extend({}, $.popup.defaults, settings);
            //var hideDelay = 500;
            //var currentID;
            //var hideTimer = null;
            //var popupAjaxrequest = null;

            var container = $(settings.containerHtml).mouseout(function()
            {
                if (settings.hideTimer)
                    clearTimeout(settings.hideTimer);
                settings.hideTimer = setTimeout(function()
                {
                    container.find(settings.cssClasses.PopupContentDiv).html(settings.emptyContent);
                    container.css('display', 'none');
                    settings.currentID = '';
                }, settings.hideDelay);
            }).mouseover(function()
            {
                if (settings.hideTimer)
                    clearTimeout(settings.hideTimer);
            });

            $('body').append(container);

            $(this).find(settings.cssClasses.PopupTrigger).mouseover(function()
            {
                // format of 'rel' tag: pageid,guid
                var newId = $(this).attr('rel');


                // If no guid in url rel tag, don't popup blank
                if (newId == '')
                {
                    container.css('display', 'none');
                    settings.currentID = '';
                    return;
                }
                if (settings.hideTimer)
                    clearTimeout(settings.hideTimer);
                if (settings.currentID == newId)
                    return;
                settings.currentID = newId;

                var pos = $(this).offset();
                var width = $(this).width();


                if (settings.popupAjaxrequest)
                {
                    settings.popupAjaxrequest.abort();
                    settings.popupAjaxrequest = null;
                }
                popupAjaxrequest = $.ajax({
                    type: 'GET',
                    url: settings.requestUrl,
                    data: 'id=' + settings.currentID,
                    success: function(data)
                    {
                        if ($(data).find(settings.cssClasses.RequestDiv).length != 0)
                        {
                            var text = $(data).find(settings.cssClasses.RequestDiv).html();
                            // Verify that we're pointed to a page that returned the expected results.
                            if (text != '')
                            {
                                container.find(settings.cssClasses.PopupContentDiv).html(settings.errorMessage.errorText.replace(settings.errorMessage.idReplacementRegEx, settings.currentID));
                            }
                            // Verify requested id is this id since we could have multiple ajax
                            // requests out if the server is taking a while.
                            if (data.indexOf(settings.currentID) > 0)
                            {
                                container.find(settings.cssClasses.PopupContentDiv).html(text);
                            }
                            container.css({
                                left: (pos.left + width) + 'px',
                                top: pos.top - 5 + 'px'
                            });
                            container.css('display', 'block');
                        }
                        else
                        {
                            container.find(settings.cssClasses.PopupContentDiv).html(settings.emptyContent);
                            container.css('display', 'none');
                        }
                        settings.popupAjaxrequest = null;
                    },
                    error: function(data)
                    {
                        container.find(settings.cssClasses.PopupContentDiv).html(settings.errorMessage.errorText.replace(settings.errorMessage.idReplacementRegEx, settings.currentID));
                        container.css({
                            left: (pos.left + width) + 'px',
                            top: pos.top - 5 + 'px'
                        });
                        container.css('display', 'block');
                        settings.popupAjaxrequest = null;
                    }
                });
            }).mouseout(function()
            {
                if (settings.hideTimer)
                    clearTimeout(settings.hideTimer);
                settings.hideTimer = setTimeout(function()
                {
                    container.find(settings.cssClasses.PopupContentDiv).html(settings.emptyContent);
                    container.css('display', 'none');
                    settings.currentID = '';
                }, settings.hideDelay);
            });
        }
    }); //fnextend end

})(jQuery);

Using the script is fairly simple

$("#container").popup({requestUrl:"/someurl.aspx"});

When I have more time, I will try to make it work using the 1.3.x jquery live function.

If you have not already, check out Caleb's post about it.  I understand he has posted a newer version that tries to avoid excessive ajax requests.