Hi,
Honestly, i don't know what is going on there. Because the "NEW" label appears based on the "creation" time, it has nothing to do with the price settings. The NEW icon shows off based on when the product is created and what time period you chose through plugin (you said you chose; 2 weeks).
Let me give you the idea behind that NEW functionality:
First of all, this PHP line:
strtotime(($product->created_on)
is used to get the "creating date" from MySQL. Which is a defined variable by Virtuemart Component. This "created_on" is stored in your MySQL for each product. And then this gets compared by today's date. If the GAP is less than the time period you choose (i.e 2 weeks) then it shows the NEW icon, if it is greater, nothing is shown.
As you can see this procedure, prices never gets involved. It is all about the "created_on" parameter that stored in the MySQL, which always persist.
Keep this in mind: If you create a product, then decide to modify it. (change the name, change the price etc..) This won't change the "creation date" for this product. Because create_on parameter always be the same. To refresh it, you need to create a NEW product from scratch.
Regards.