1) there is no difference between charges and shipping... you can just change the label I don't think you need to worrry about this at all.
2) You should create a recordset to return the correct charge from the Delivery Charges table and store it into a session variable. Then you can use that session variable in your charge.
3) If you set the weight to zero for those items it will be "ignored" in the UPS quote since it is based on weight.