Preheat the oven to 180 degrees C. Lightly grease a 900ml pudding basin and line the bottom with a disc of greaseproof paper.
Place the dates in a bowl and pour over 2 tablespoons milk. Stir to coat, then leave to soak.
Place the margarine, sugar, eggs and remaining milk in a bowl. Sift over the flour, cinnamon and ginger, and beat with an electric mixer for 2 minutes or until smooth. Fold in the soaked dates and walnuts.
Spoon the mixture into the pudding basin. Set the basin in a baking tin and pour in boiling water to come 1 cm up the sides of the basin. Cover the tin and basin with a tent of foil.
Bake for about 1 hour or until the pudding is lightly risen and a skewer comes out clean. If not, bake a further 10 minutes.
Meanwhile, make the sauce. Drain the pineapple, reserving 2/3 cup of the juice. Blend the arrowroot with a little of the juice in a small saucepan, then stir in the remaining juice. Bring to the boil and simmer for 1 minute or until thickened and clear. Stir the pineapple and marmalade into the sauce and simmer for a further 2–3 minutes, stirring occasionally.
Turn the pudding onto a serving plate. Spoon a little sauce over and serve with the remaining sauce in a bowl.