Are conditional Flags possible?
to do this you could use the Rules module. I tried to do a similar thing before, it works but is a little awkward. You only need an event and action, a condition isn't really needed here:

Event: "Name of flag" has been flagged,
Action: Unflag "Name of second flag"

For the second flag you would obviously do the opposite:

Event: "Name of second flag" has been flagged,
Action: Unflag "Name of flag"

Now if someone flags a node with "Like" the "Dislike" flag is almost automatically unflagged, and vice versa (I think you get the concept here). "Almost" is because while flagging works dynamically the unflagging via rules only works after page reload, in my experience at least. So to a user it will look like you can both "Like" and "Dislike" things, but after reload only the last flag will stay.