Place softened butter, sugar, cocoa, egg, and vanilla extract in a small bowl and set in a pan of boiling water.
Stir until butter is melted and mixture thickens.
Remove bowl from water bath and add graham cracker crumbs, coconut, and walnuts. Mix well.
Spread chocolate coconut mixture in a 9x13 ungreased pan. Pack it down firmly with the back of a spoon.
Place in fridge to cool for about an hour before adding icing.
Make the custard icing
Cream butter.
Mix milk and custard powder together, then fold into creamed butter.
Gradually stir in sifted icing sugar to make a stiff icing.
Spread evenly over chocolate base and allow to set in the fridge, about an hour.
Make the chocolate topping
Slowly melt semi-sweet chocolate and butter in a small double boiler, being careful not to burn the chocolate. Once melted, pour over top and place in fridge to harden.
Cut into small squares and enjoy!
Notes
Of course you can substitute regular graham cracker crumbs if you don't need this to be gluten-free. You can use dairy milk (cow, goat) or non-dairy alternatives (almond, cashew) in this recipe. Nanaimo bars freeze well, so make these ahead of time and freeze for later.