I'm going to try In Pursuing Design in 2.0, because that has a glitch which makes NPC Viridian smile. I'm assuming that it'll make the player smile in 2.0, because it's a feature added in 2.1 which probably wasn't implemented correctly - no argument assumes cyan rather than player, which is the mistake. I'll let you know my results.
EDIT: Yeah, in In Pursuing Design, when you're in the room with NPC Viridian, it's the player who becomes sad then happy, not the NPC as in 2.1. So it was a new bug introduced into 2.1 as a side effect of being able to pick who becomes happy and sad. Basically, remember that if you're using cyan NPCs, don't use happy and sad sans argument - put anything in the brackets that isn't a recognised command. Recognised commands are:
1, viridian, cyan, [no argument] (=NPC if it exists; if not, then the player)
2, violet, pink, purple
3, vitellary, yellow
4, vermilion, red
5, verdigris, green
6, victoria, blue
all, everyone, everybody (player and NPCs)
0, 7, 8 etc, me, player, random words, anything else = player guaranteed, not cyan NPCs.
So numbers work, and there are three ways to specify "all" that I've found so far. "every" doesn't work, so everyone and everybody must be hard-coded.
Note that if you have multiple NPCs of the same colour in the room, only one will be made happy or sad - even if you use "all". My experimentation hasn't uncovered a solution, unfortunately. It's definitely worth knowing that once happy, they stay happy even if you leave the room and come back. However, multiple NPCs of the same colour in DIFFERENT rooms will all be affected by their corresponding command.
Happy and sad commands affect all NPCs, even in different rooms. If you use no argument or cyan / viridian, if you've got a cyan NPC, both will change if you're in different rooms. The NPC will change alone if you're in the same room. So again, to ensure it's just the player that changes, use e.g. happy(me). If you've got two cyan NPCs in different rooms and you're in one of their rooms, and a script there contains sad, then both cyan NPCs will become sad and the player will be unaffected. If you're in a different room, all three of you will become sad.
I think that about covers it. Any questions? Sorry if I overcomplicated things...
EDIT again: Just to point out that it's safe to have a 2.0 exe in the main folder of a 2.1 install. I haven't noticed any problems; the extra 2.1-exclusive stuff in the save files is left alone by v2.0 it seems. Any player levels you complete with 2.0 won't be starred when you load v2.1, but the levels already starred will still be starred. I copied my original v2.0 into the folder and called it VVVVVV20.exe along with the main vvvvvv.exe which is 2.1.
EDIT 3: OK, happy and sad commands affect all crewmembers of a certain colour, just not all straight away if there's more than one on the screen. For example, say you've got three cyan and three red in a row; happy(all) will only affect the player, the first cyan and the first red crewmember (in terms of when you placed them; if you placed them middle, left, right then it's the middle that will be affected), but when you leave the screen and come back, they will all be happy. Same goes for picking a colour; the first will be affected on the screen you're on, but they'll all be affected once you leave the screen.