I would expect that there will be threads similar to this one, but I cannot get a proper answer to my problem. Let me try to explain my situation:
I am in the process of setting up a shop with a multitude of categories. Every category will most probably have a unique shipping requirement. I am from South Africa and the shop is targeted for the South African market. The international market could be serviced but that is still a dream.

Example:
Category - Candles.
The weight of a candle is 250g.

For this item there are more than one option which must be available:
a) The item(s) could be shipped via the Post Office.
There is an option where one can send up to 1kg in a parcel at a flat rate of (ZAR) R 20.00 Thus if 1 of an item is ordered the shipping will be R 20.00, however for up to 4 of the same item the price would be R 20.00 as the total weight would still be within the 1 kg limit.
In the event where the client needs e.g. 20 of the items it would mean that five parcels each at R 20.00 will need to be shipped making the total shipping R100.00.

b) A courier could ship the parcel:
Let us assume the 20 units of the above should be shipped it might be cheaper to ship the total order in a larger parcel and by Courier. It is now up to the client to select which option to chose.

c) The client ships sing his own courier service:
This is the third option where there is no added shipping charge as the client sends his own courier account details and pays the shipping upon delivery.

How would I go about to set up the shipping modules for a scenario such as the above?

What makes this more difficult is that if I have to ship another category of items such as CD's for example. The weight of a CD is approx 150g. How do I handle this as there is only one rate table which I can set up.

Then there is even another problem. What happens if I have to ship an item which weighs more than 1 kg each or is too large to fit into the max sized parcel used by the Post Office eg. a printer. In this instance there should be only two options which are by courier or by own courier.

A further bug-bear is that some items are quite large and will be shipped by volumetric rate. This is yet another option which will have to be catered for.

I really need some guidance here as this is the only aspect which I have to solve.

Failing to implement any system as described above, how do I set up the shop where ALL the shipping is done for the account of the client?

Thanks guys