I already replied to your email inquiry about this, but I'll post my reply here for the benefit of others who may be interested:
You must enable the Shipping setting for every product that you want to trigger collection of address information for; no address information can be collected for an item that does not have the Shipping option selected. It sounds like you have your Shipping charges configured with a maximum fee as the Handling charge, and using discounts to markdown that charge based on order total.
To accomplish what you want, you may need to remove the Handling charge and instead place your maximum fee as the cost of a particular container type, then set most of your products to ship in that container type, except for free-shipping products that you would set to ship in a different container type that has no cost. For the majority of your products, I would recommend using the Large Tube container type (even if you're not literally shipping in tubes), as Tubes can automatically consolidate different products from an order into a single parcel for shipping (whereas the other container types add a separate parcel for each different type of product ordered); when you configure Shipping for each such paid-shipping product, set it to ship some absurd number of units (like 9999) in that Large Tube, so no order would be likely to exceed that number of units to trigger adding another container.