take part-time classes as close to your desired masters program as possible. some universities will even let you take graduate level courses part-time without admission to a degree-granting program, and will transfer the credits if you're admitted. the thing about bad grades as an undergrad is that everything good you do afterwards reduces their impact on your future. and people (especially university administrators) understand that even smart, hard-working students sometimes screw up in college. so if you had a lackluster sophomore year, but are now kicking ass in graduate level courses, the admissions office is going to pay more attention to the kicking ass than something that happened many years prior. this will show not only competence, but commitment, which is also a big deal in graduate admissions.
an even more specific recommendation, if you're looking at psych programs, is to take some research-related statistics courses (preferably including some SPSS). proving yourself there will be extra impressive, since it's an area where a lot of social science people burn out. as others have said, any related work experience helps (internship, research assistant, etc), as does a good GRE.
i had a sub-3.0 BS in psyc as well, and decided i wanted to work in math instead. took advanced undergrad/first-year grad classes part-time to prove myself, got admitted to a masters program in applied math, and now work in mathematical finance. a good friend of mine who majored in history and recreational drugs spent a couple post-grad years taking bio and chem, aced the MCAT, and is now in his fourth year at one of the best med schools in the country. shit's not quick or easy, but it's definitely doable.