Many thanks for your replies. I did some research and found out the following:
Scott regarding "sp_getapplock", it appears that from what I read, it should not be the first choice, especially if the record will be checked out for some time.
Craig are you referring to something like this, where there should be a check if the record is not committed in a reasonable amount of time?
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
select * from ...
update ...
COMMIT TRANSACTION;