Hi structuralbio, I unfortunately do not have all the answers for you, but I can tell you what I know since I have just finished applying to schools for structural biology/biochem/biophysics.
My undergraduate overall GPA and major GPA are both a 3.5. As you can see from my signature, that was high enough for me to be accepted to an Ivy League School. From what I have seen, GPA's around 3.5 and above are successful, however a GPA below absolutely does not rule you out. I have heard that more focus is put towards the upward trend of your grades throughout the years, as well as your GPA from your last 2 years.
I would define core classes as classes that are required for your specific major in the sciences. At my University, chemistry classes counted as core classes towards our biology major, because they were requireed. We were also required to take calculus, but that's not considered a core class. Our core classes were strictly science classes. Lab classes did count, and lab classes are not free A's at my University, especially the physics lab!
I would say as a general rule of thumb, try to aim for at least a 3.5. If you have lower, then compensate with good GRE scores and research experience. I believe that research experience is the most important component of an application for graduate school. My GRE scores were not enough to get me into Johns Hopkins, but my 3 years of structural biology research experience was enough to get me into a couple of top programs. Bottom line, try to get above average GREs, substantial research experience, and good LOR's, and you should be able to get into a good graduate program.
Sidenote, you also don't have to put down your program by saying it's not the best. I come from a small school that's unknown out of my state, and even our own students say that they cannot do much with their degree. I am laughing at all the naysayers with acceptances from top programs. What matters the most is what you get out of your program.