After banging my face off my desk for an hour I got it figured out. Its pretty stupid too.
So Im running a ground up theme from scratch and WP 3.4.2 (incase you were wondering if this applies to your situation).
So the underlying problem is that wordpress gets confused if the value of query_posts(‘posts_per_page=2’); and the value in “Reading” section in the backend are different.
So heres what you do, get rid of the “posts_per_page” value and set that value in the back end to however many post excerpts you want to display on an archive/category page (yes it works with custom post types as well).
Hope this helped somebody