My first degree was History. I went back for engineering and failed Vector Calc and Electro-Mag both twice before finally understanding the material and getting an A in each. I was 30 when I took those, and was too proud to take the remedial.
Luckily, I've had some amazing research experiences so I know I can do the science; that said, I can easily imagine how differently things could have gone if that wasn't the case.
Here is my example in case you can benefit from it. I was studying EE and I had classmates who were able to skip Calc I, Calc II and one guy even clepped out of Differential Equations! Me? I was failing Pre-calc and I had to drop down to College Algebra. I was even failing that, unfortunately. I went to talk to the teacher, who unhelpfully stated, "In my 12 years of teaching I have only had a single student manage to pass considering where you are starting from." That seriously pissed me off. Fortunately, the next test was on exponentials and logorithms, which I just "grok". I got a high A on it. From there I dedicated even more time to the materials and I scoured the library for better math reference books. I found some books that took a practical approach to problem solving and used them to understand the process correctly. In the end I ended up with an 89 for the class. Considering that I had a 60 when I talked with the teacher, I was very proud of it.
I ended up having to add a year to my University studies and therefore added an extra major but it worked out well. I graduated with my EE degree and ironically some of the people that were exempted from the Calc series dropped out since the program was "too hard".
Change the way you are studying if your struggling. Look for other reference materials, try out a few different tutors. There are different ways to learn things, and you just need to find out how you learn and then you push it for all it's worth.
Maybe in-demand engineers make more than the average lawyer, not sure about that. Maybe an MBA isn't really that much easier? But I'd say higher social status, especially in the USA holds true.
And I doubt there'll be that kind of a bottoming out. That said, I'm a 3rd year Cdn law student and programmer looking at a career in law that at least in the next few years will probably be less lucrative than being a programmer.
P.S: I also have a science degree so this post particularly caught my eye!
Engineering is both less segregated (people at MIT aren't all making Google salaries and people at Penn State can get still top jobs) and less bimodal (the top jobs don't pay 3x as much as the median job, and even people who do poorly grades-wise can often find some sort of employment).
So if you're looking at a top engineering program like Berkeley versus doing a bullshit humanities degree followed by a top law school, you'll likely come out ahead monetarily pursuing the latter option. On the other hand going to a decent state engineering school is probably a better bet than aforementioned humanities degree and a decent state law school.
That being said, even someone who went to aforementioned state law school and is working in "small law" for $50k can make a lot of money if he can bring in business. And if you went to that big firm and can bring in business, you can get paid millions while still doing legal work. On the engineering side, you either have to go the startup route, get an MBA and go into management (which involves not being an engineer anymore), or be content hearing "we couldn't possibly pay an engineer as much as a manager!" It's changing a bit with the Google's and Facebook's of the world, but is still the basic reality for most non-software folks.
Median starting and mid career salaries by undergrad major. Engineering dominates the top salaries.