Preheat oven to 350°. Grease and flour a 9x13 pan, or two 9 inch round pans, set aside. In a small sauce pan, melt together the butter and the chocolate squares. Set aside to slightly cool.
In a medium bowl, cream together the sugar and the eggs until light in color. Add the chocolate mixture to the eggs, beat well. Add the water, still warm, mix well.
In another bowl, combine the flour baking soda and salt. Add the flour mixture to the the chocolate and blend well. Mix together the vinegar and the milk, stir into the batter. Bake for 30 minutes or until a toothpick inserted in the center comes out clean.
Using the handle of a wooden spoon, poke holes in the top of the cake and pour the sweetened condensed milk all over the top of the cake. Set aside to cool. Mix the cool whip, pudding and coconut together, and spread over the cake. Store covered in the refrigerator.