You can do both. You can use a custom dialog box to get confirmation and you can also use a if empty statement before you set the value into the field. You can also create your own new record button that performs the conformation, then runs the script and validate the field is empty.
Both options are possible.
To ask for confirmation:
Show Custom Dialog [ "Do you really want to do this?"]
If [ Get ( LastMessageChoice) = 1 // Button 1, OK was clicked ]
//Put the rest of your script here
To check to see if a field has data in it before modifying it:
IF [ IsEmpty (Table::Field ) ]
//Put steps to modify the field here
You can even combine the two methods by using Not Isempty and then asking for confirmation before modifying that field.
With regards to your last question, am I correct that you are using the "insert from last visited" script step?
If so, which record was 'last visited' can be a bit fuzzy in FileMaker. It's defined as the "last active record" and this is a record that you opened for editing--usually by modifying a value. There may not be a "last active record" at the time the user performs the script or it may be a different record than they expected as they may have edited record 1, navigated to record 2 and then created a new record, only to find that the script copied data from Record 1, not record 2.
To get better results you may want to create a new table occurrence of your layout's table and devise a self join that consistently references the "last record" and then you can control what will be selected as the Last Record.
To create a new table occurrence for an existing table:
In Manage | Database | relationships, make a new table occurrence of YourTable by clicking it and then clicking the duplicate button (2 green plus signs). You can double click the new occurrence box to get a dialog to appear where you can rename the new occurrence box.
We have not duplicated a table. Instead, this is a new reference to the same table already present in your database.
To learn more about table occurrences and how to make use of them: Tutorial: What are Table Occurrences?