I have to say that even though this works, it's not a great solution. You're using the system in a way in which it's not designed. The siteMapNode supports the notion of custom attributes, so you can add a target attribute. The Menu control however, doesn't automatically bind to this attribute, but it's pretty easy to add some code to do this. Just hook into the MenuItemDataBound event for the menu control:
protected void menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
// if the siteMapNode has a "target" attribute, use the
// value as the Target of the menu item
SiteMapNode node = e.Item.DataItem as SiteMapNode;
if (!string.IsNullOrEmpty(node["target"]))
e.Item.Target = node["target"];
}
Dave