The following function:

function buddylist_ui_actions(&$viewer, &$viewed) {  
  $output = array();   

  $count_rtypes = sizeof(buddylist_api_rtypes_load());
  if(buddylist_api_load_relationships_between($viewer, $viewed, TRUE) < $count_rtypes)
    $output[] = l(t('Add a relation'), 'buddylist/add/'. $viewed->uid, array('query' => drupal_get_destination()));
 
  return $output;
}

shows a link for a relation when a request has been made but not accepted. The script should account for when a relationship is not active yet eg

function buddylist_ui_actions(&$viewer, &$viewed) {  
  $output = array();   

  $count_rtypes = sizeof(buddylist_api_rtypes_load());
  if((buddylist_api_load_relationships_between($viewer, $viewed, TRUE) < $count_rtypes) && (buddylist_api_load_relationships_between($viewer, $viewed, TRUE, FALSE) < $count_rtypes))
    $output[] = l(t('Add a relation'), 'buddylist/add/'. $viewed->uid, array('query' => drupal_get_destination()));
 
  return $output;
}