Pagination Not Working (pages duplicating content)

This is because query_posts resets the query. See this warning on the Codex page:

Pagination won’t work correctly, unless you use query_posts() in a
page template and you set the ‘paged’ query var appropriately:
http://scribu.net/wordpress/wp-pagenavi/right-way-to-use-query_posts.html

The call:

query_posts( 'category_name=category&showposts=2');

does not tell it which page to get (so it gets the first page). It’s a simple matter of:

$page = get_query_var('paged');
$page = (!empty($page) ? $page : 1);
query_posts( 'category_name=category&showposts=2&paged='.$page);

Note: For pages (i.e. when using a custom page template, you need to use get_query_var('page') rather than get_query_var('paged').