Roles Can Be A Bummer
Making actions/options not available to people can force people out of the magic circle pretty quickly. Sure, roles can help people feel special, but it can go overboard. This does not mean that the rogue shouldn't be stealthy, or that the cleric can't be tank-y, but not being able to use or do something because of an arbitrary class restriction breaks the circle, which means less fun for everyone.
Sometimes, multiple people actually can do the same thing, and that should happen sometimes. If every task you throw at the player characters cannot be accomplished except for 1 person's specialization, it may be a harder adventure than these players (as a group) are fit for. Not that there can't be a situation where you need a particular player to do a something, but that it shouldn't happen all the time.
Perhaps It is a Matter of Perception
So maybe this player is simply just does not imagine the same thing you do. You can try to reinforce what you envision by describing what is going on. Is she/he making informed choices? Does she/he realize what the gravity of the situation, or how her/his character has certain strengths?
Does this player realize the cleric is running around in thick armor, while that player's character is running around in normal clothes? For example, if I think the cleric is running around in normal clothes, and goes into combat and comes out unscathed, I could run in my normal clothes, and also come out unscathed.
If this is the problem, you simply need to be more descriptive! Describe how the cleric is wearing armor, or how the rogue is especially cat-like, and how this player's character is not.
For Games Which Depend On Roles
It may be time to have your other players step up. Have the cleric yell at the other character to stay back, or that the cleric "has this." Alternatively, the cleric may ask "PEASE SUMMON THIS TO HELP ME!" as he charges in.
If the rogue attempts to sneak around, the rogue can give specific instructions; "Can you make a distraction over there?" "Wait here, and if I'm not back in 15 minutes, go get the others to rescue me." Or even: "this looks super dangerous. I don't think you'll make it. We don't want to get ourselves killed, yeah?"
In short, give him tasks, or have the other players give him tasks to help with things. Talking is a free action in combat; use it. This is especially good for players who may be experiencing some mental handicap; it gives them something concrete to act on. It allows them to contribute (which feels great and is fun) without going through negative experiences.
Finally, a player or the DM can specifically highlight when certain actions will require a specific specialization, and who has that training. If it becomes obvious that a task is dangerous and requires training, then most people leave it to the person with the training. The DM can further forbid people without specialization from trying, stating that it's obviously too hard. This is more "hand-holdy" than some people like it, but sometimes people just need their hands held.
Talk About It
Talk with the player about the roles. What is her/his character good at? What should she/he focus on? These other characters have something special about them, what is she/he special at?
Talk about how their character is so good at magic/whatever else, and how they should try to make their magic/whatever else be the solution for the current situation. (After all, we're solving these situations using our strengths, use your strengths to help solve it!)
Tough Love
Finally, you may have to resort to letting the consequences of this player's action happen. Let the events, despite other character's best efforts, happen. Talk about how that character was not focusing on what they were good at, or how their play-style does not match up well with the class they chose. Make a new character that does okay at everything, such as most games' version of a "bard." Note: this does not mean make a character who is rule-breaking and superior to all the others, but one that stands a decent chance at performing many things, and isn't a large risk to the success of most tasks.
Firstly, you should talk to all your players about the issue outside of a session. You can get some personal impressions first with one-on-one conversations, but ultimately the entire group should sit down to discuss the problems. Make sure the discussion is democratic in nature, though. JohnP points this out in a related question: "The group setting can be dangerous, as it can turn into people digging up old grievances or ganging up on a particular person."
During the discussion you should ensure that everyone is on the same page about how they want the game to be played. The same page tool is a useful set of questions that will drive the discussion in the right direction. Just make sure everyone is fully involved in the discussion and are voicing their opinions clearly (no passive-aggressive bs). If your players are open to compromises a consensus should be reached.
Secondly, make sure your friend is not suffering from My Guy syndrome. If the description matches (and it sounds like it does), show her the link privately and let her think about it. It should help her be more aware of her role as a player and hopefully remedy some of the issues.
You also mentioned your player gets upset as a result of your decisions. This related question contains a lot of suggestions for how to handle players that take things personally, ranging from studying your own approach to kicking out the problematic player.
In the end, though, you are the GM. You are the writer of half of the story, the referee on all mechanics, and the leader in the quest for fun. The way you drive your campaign is part of your style and your players should respect it. They need to be aware that your goal is always to increase the enjoyment they collectively get out of your game. A certain level of trust and respect is absolutely necessary. If this is impossible to obtain in your group, then the group as it is cannot function. Kicking out players or stepping down as GM would be the next steps to try.
Because the GM is so special, though, new players often fail to grasp just how complex the GM role can be, and can at times see him as an enemy and spoilsport. A neat "trick" you can use to show your players what being a GM is really about (that also gives you some rest from the responsibility of being a GM) is to have another person in the group be the GM for a few sessions. It doesn't have to (and most often shouldn't) be the same campaign you're running. Instead, it can be a few sessions of an off-shoot campaign. It's fun for the players because they get the chance to try out new (and often times silly) character builds, and the new GM will discover what it feels to have all this responsibility. Once everyone has GM-ed a couple of sessions, you will all have an idea of who's best at it and will work towards keeping that person as GM in the future. There's a chance it might not be you, but in the end it should result in a better experience overall.
Keep in mind that not everyone is fit for GM-ing, or willing to try at all. Don't force players to GM, and if they decide to try, encourage them to design very short adventures (no more than three sessions). They can always expand on them later if they like it, or end them early if they don't. The player that questions your decisions often probably thinks they can do a better job, so they're likely to accept your offer to prove themselves.
Best Answer
Good question!
I think that what you have to remember is that the DM decides when checks are called.
From the sounds of it you have already got your answer in your question! I think it's great that you have already established how insight would or should work, what you should consider is that if there is no negative potential then there is no need for a dice roll, you could simply explain what the PC gets a feel for from the conversation.
The negative outcome from an insight check could be a false positive. Example:
A high roll, may reveal that the NPC is scared or that he is being deceitful. A low roll however may reveal that as far as the PC can tell, the NPC seems confident or that he is absolutely telling the truth.