Change page title on user-profile using a field value from Profile2
If you actually seek to always use the full name for the user's Profile2 when his/her username is displayed, then you should implements hook_username_alter(). Any well behaving module (contrib and core) should use it.

function MODULE_username_alter(&amp;$name, $account) {
  // Get the user profile
  $profile = profile2_load_by_user($account, 'profile_type');
  if ($profile) {
    $fullnames = field_get_items('profile2', $profile, 'field_fullname');
    if ($fullnames) {
      $name = $fullnames[0]['value'];
    }
  }
}


If you only want to override the username when used as title of the user page, you can alter the menu entries for user and user/%user to change their title callback to a custom one.

function MODULE_menu_alter(&amp;$items) {
  $items['user']['title callback'] = $items['user/%user']['title callback'] = 'MODULE_user_menu_title';
}

function MODULE_user_menu_title($account) {
  if (is_object($account)) { // Updated here
    $profile = profile2_load_by_user($account, 'profile_type');
    if ($profile) {
      $fullnames = field_get_items('profile2', $profile, 'field_fullname');
      if ($fullnames) {
        return $fullnames[0]['value'];
      }
    }
    return user_menu_title($account);
  }
  return '';
}