Now when I make the project open source and say a developer Sam does some enhancements to some existing files. Then should he be allowed to put up a copyright notice in his name as well?
Well, copyright law (in most jurisdictions) states that Sam owns copyright on any non-trivial changes that he makes to the files. He is reasonably entitled to add his Copyright notices. You have two alternatives:
Accept his changes as is (with or without changes to the Copyright notice.)
Require him to formally assign you the copyright as a precondition of accepting his changes. Of course, he may not agree with that, and walk away. Or he may just decide to fork your project an make his changes in his fork.
In a sense, him putting his copyright notices ... or not ... is irrelevant. If his copyright material is in the file, then he has a legal claim on part of the IP, irrespective of the copyright headers. (This claim may be subject to a de minimis legal defense, or other legal arguments. But that depends on the size and nature of the contribution. Talk to a lawyer ...)
But the bottom line is that if you are going to run an open source project, it is not all about you getting the ownership, the credit, the glory. If you want other people to help you, you have to think about what they want to get out of it too.
However ...
Now in future if Sam is approached by some organization then he can sell the code under his copyright.
If you choose a decent open source license, that cannot happen. In a decent license, stuff properly published under the license cannot be unpublished. It is out there ... forever.
(If you are worried about this, get him to sign something to attest that 1) he is legally entitled / authorized to contribute his work, and 2) he agrees (irrevocably) to it being published under your project's open source license.)
What is the common practice in the Open Source Community?
The most common practice would be for Sam to not do that. (Because it is not a a necessary / useful thing to do.)
I don't think there is a common practice for dealing with this in contributions ... because (AFAIK) it is unusual for contributors to do it. But all of the approaches I suggested above are (IMO) reasonable.
(A bit off topic, but important nevertheless.)
There is another (practical) reason for asking people to assign copyright. If the copyright of a code base is held variously by a number individuals, it can be difficult if you need to do something that requires the consent of all copyright holders. The classic case is if you want to change the license, you need to find all copyright holders and get them to agree. Even tracking them all down can be difficult.
But the flip-side is that if you want people to assign copyright to you, they have to trust that you are not going to abuse your position as the copyright holder; e.g. by re-licensing under a closed source license against their wishes.