Elegant approach to building unordered list from XML
The part that looks most problematic in your code is the if statement: the code in the if part and the else part is almost the same except that you prepend urlPrefix to the URL if it is relative. (Also you're only checking whether the node is the last if the URL is relative, which does not seem right). At the very least I'd factor this out into a helper method, which takes the absolute URL as a parameter to remove the code duplication.

However there's an even better way: .net already comes with the System.Uri class, which can take care of making the URL absolute for you.

private void LoadNavigation()
{
    Uri urlPrefix = new Uri("http://mysite.com");
    string xmlFilePath = ConfigurationManager.AppSettings["NavigationUrl"].ToString();
    XmlDocument doc = new XmlDocument();
    doc.Load(xmlFilePath);
    XmlNodeList navigationItems = doc.DocumentElement.FirstChild.ChildNodes;

    foreach (XmlNode item in navigationItems)    
    {
        Url fullUrl = new Uri(urlPrefix, item.Attributes.GetNamedItem("url").Value);
        String title = item.Attributes.GetNamedItem("title").Value;
        navList.InnerHtml += "&lt;li&gt; &lt;a href=\"" + fullUrl + "\"&gt;" + title + "&lt;/a&gt;";

        if (item.NextSibling == null)
        {
            navList.InnerHtml += "&lt;/a&gt;&lt;/li&gt;"; //last item in list
        }
        else
        {
            navList.InnerHtml += "&lt;/a&gt;|&lt;/li&gt;"; //not the last item in list
        }
    }    
}