Is there is anyway so that the Modified By column is not updated at first when we create it but be updated when modified?
An easy way to do this would be to not worry about the ModifiedBy, (which you should never really mess with default anything in SP) and create you a multiline text field and make it required. If you append changes to it, SharePoint will put the user below the comment. Just have them put approved or whatever in the multiline text field and there you go.
You need to create a new column called 'Approved By'. Go in the List Settings (assuming you are using a List). Scroll down the menu and find the option to Create column>name your column>The type of information in this column is: Person or Group.
Before you save your new column review the other options on the page, under the heading Additional Column Settings. There is something called 'Choose From' All Users or Groups - you might want to consider making an Approvers group to which you can add the names of your approvers, this will limit the range of possible approvers to what you specify (perhaps managers / supervisors?).
Besides this you might want to make a simple approval Workflow which emails an Approver when something needs their approval.