I've 2 custom publish types known as 'project' and 'client' that share a taxonomy known as 'sector'.

if (!is_taxonomy('sector')) {
        register_taxonomy(
        'sector', array('project', 'client'), array(
        'hierarchical' => true,
        'label' => 'Sector',
        'query_var' => true,
        'rewrite' => array( 'slug' => 'sector' ),
        'with_front' => false
        ) );

        wp_insert_term('Health', 'sector');
        wp_insert_term('Clubs', 'sector');
        wp_insert_term('Commercial', 'sector');     
    }

I've produced a taxonomy archive template having a sidebar nav that lists links to my taxonomy archives using:

//list terms in a given taxonomy using wp_list_categories 

    $orderby      = 'name'; 
    $show_count   = 1;      // 1 for yes, 0 for no
    $pad_counts   = 0;      // 1 for yes, 0 for no
    $hierarchical = 0;      // 1 for yes, 0 for no
    $show_option_none='';
    $title        = '';

    $args_sector = array(
      'taxonomy'     => 'sector',
      'orderby'      => $orderby,
      'show_count'   => $show_count,
      'pad_counts'   => $pad_counts,
      'hierarchical' => $hierarchical, 
      'title_li'     => $title
    );


<ul id="sideNav" class="rightSubMenu">   
      <h3 class="rightSubNav">SECTOR</h3>
      <ul id="sideNav" class="rightSubMenu">
        <?php wp_list_categories( $args_sector ); ?>
      </ul>

</ul>

The issue is if I've got a project that's associated with 'clubs' along with a client that's associated with 'clubs' the output count shows 2. Even the archive page shows 2 posts - 1 for project and something for client. But there's just one project.

I'm mainly worried about the project page and want to filter the outcomes by my 'project' publish type. I looked with the codex and also the wordpress_list_groups function does not appear to simply accept a parameter to get this done.

Can anybody help? It is possible to better method of doing this?

I've had an identical problem. Used to do this by cloning the wordpress_list_groups function, passing on another title and investing in this code following the line: $groups=get_groups($r):

 foreach ($categories as $key => $category){
        $temp = array ( 'post_type'=>$r['type'], 'tax_query' => array(
            array (
                'taxonomy' => $category->taxonomy,
                'field' => 'slug',
                'terms' => $category->slug
            )

        )
            );
        $pauli = new wp_query($temp);
        if($pauli->post_count==0){
            unset($categories[$key]);
        }
    }

As you can tell, it removes groups that have no from the publish type you'll need, after which continues the procedure as wordpress_list_groups does normally.