You can force it, through doPlayerSetMaxCapacity(cid, cap).
you give more cap to the player, add the item, and then, you take the additional cap.
To calculate how mach capacity you should give, use this function: getPlayerFreeCap(cid)
and to know how much the player need: getItemWeightById(itemid, count[, precise])