The flaw with Nemesis wasn't who they killed it's how hallow and meaninglessly it was done. A character death can be a VERY dramatic plot element if done properly. If done improperly, it's just an afterthought.
So just to piggyback on what you said, which I agree with, Data makes the ultimate sacrifice that I'd like to think is a very human thing to do for a friend or member of a family, so do you think that him making the ultimate sacrifice was not a good idea, or just improperly done. If it's improperly done, I'd love to know how you would have improved upon that...

The Tucker thing in Enterprise was so bad, that I don't remember why or how that happened...but the 3rd and 4th season T'Pol sure is nice to look at...
I have no doubt Data would willingly sacrifice himself for a member of the crew. Heck his willingness to do so for active antagonists has been established as early as Deja Q when he damaged himself and nearly died saving Q's human form.
So obviously we're going with improperly done. Let's establish what happened. Picard decides he's a senior badass and beams over to the Scimitar to stop Shinzon's super weapon. Conveniently the transporters are shot and can only beam him over and not back. Too bad they didn't have any shuttles hmm?
So Picard gets over there and starts killing Remans by the dozens video game style. The he gets into the classic hand to hand battle with the villain. There's no stopping superhero Picard, except his arthritis makes him drop his weapons occasionally. He beats the bad guy, impales him on a giant spear and yep. Shinzon spouts off a dumb line and that just causes Picard to suddenly become wrought with emotion for killing poor little Mini Me.
Yep, Picard's so overcome with grief over that he just doesn't think about all his friends over on the Enterprise dying. Too bad. Well Data does his silly physics defying space jump. Even he forgets they have shuttles too. Anyways, Data comes in to save the day. He puts his transporter tag thing on Picard and it beams him back.
Now this makes zero sense for a couple of reasons too. A transporter tag, at least in the last movie, made a transporter lock possible in otherwise impossible circumstances. It stops interference. But it still requires the transporter on the other end to be working. Now it's just magic. It works. Or maybe the transporter tag thing is just smarter than our heroes and taps into the shuttles transporters if the main ones aren't working?
Number two... why doesn't Data just grab Picard as he transports him away? There are any number of examples of this throughout Trek as early as STIV when Gillian grabs Kirk when he's beaming up. Power doesn't seem to be an issue, the transporter just grabs everything in a given three dimensional area and beams it up. Like the floating blood in STVI. Oh wait, how would Data blow up the doomsday core? Well bombs work... but even since he didn't think of this, there are multiple examples of both Federation and Romulan hand weapons being set to "overload" on a 30 second or so timer. Data had his phaser. Even if the transporter tag doesn't work to get Data back for whatever reason he can set it on overload and run back out to that hatch and jump back into space.
So yeah, Data sacrificing himself was pretty much meaningless due to sloppy writing. I think it makes more sense that Data just couldn't take anymore of these movie scripts and offed himself.