Any decent system will do what you listed. The bigger issue is training the people to use it. Especially #3. I'm not sure there's a version control package out there that doesn't support this, but if the people using it don't type in good info, it is useless. No program is going to be able to tell you whether your version description is adequate.
The biggies I have used are Visual Source Safe, which integrates into LabVIEW and Seapine Surround SCM, which doesn't to my knowledge. I haven't really had too many issues with either.
I use Source Safe at my office. It seems intuitive enough to me and have no complaints.
My customer uses Seapine. It seems a little less intuitive to me, as many time, I have to go into Advanced options on check in to enter information I wanted stored. It gets a little annoying after a while. It integrates with Seapine's TestTrack Pro Bug tracking software, so it has some advantages there as well. I know it supports floating licenses as well, so you could get a few licenses expecting not everyone is going to need ot be in the system at the same time.