The upper body turned out to be harder than I expected. There were two problems. First, due to limited number of reference images, the measurements were hard, so I had to use my judgement to find out the correct ratios. Second, the CAD image I used for modelling was different than the actual scaled model. My design turned out to be something in between. So I spent the weekend modifying the model continuously. The latest version is not the best, but it is satisfactory for now.
While I found the it hard to copy the geometric design at the beginning, later, once I get used to blender, it became easier. The trick I used most was to extend an edge by scaling at one corner (I found it in this forum, but it is also in the manual).
Geom Tool turned out to be a great script that is a must, as it make it very easy to connect edges to other faces. I had used Point Align occasionaly, but probably due to by noviceness, I couldn’t use it efficiently. I want to use it so that I can select a vertex in one object, and another one in another object and then put them over. I couldn’t do it using that script so far. I also used kloputils occasionaly. It was not in my “wizard” menu in debian for blender 2.45, so I downloaded it from SVN.
Finally, I couldn’t find any scripts that tells me the normal values of selected vertices, so I wrote one myself. Later I changed it so that it gives the angle between the normals of two selected faces. Here it is if somebody wants to use it. It is minimalistic, and it doesn’t even know the selected object, so you have the write down the object name in the code (I think blender has an function to return the active object, or I can loop through all objects to identify selected objects but for my purpose it works, so I left it as it is). After selecting two faces, if you run the script (with your mesh name in the place of “mymesh”), it should print the angle between the normals to the console. Useful to verify the surfaces you are working on are parallel.
from Blender import NMesh,Window, Mathutils
from Blender.Mathutils import *
if in_emode: Window.EditMode(0);
me = NMesh.GetRaw("mymesh")
selected = 
faces = me.faces
for f in faces:
if in_emode: Window.EditMode(1)
For some reason, my new faces have white shade. I may have accidently changed some default vertex paint value or so, it took some time to figure out how to paint all faces with a different color, but here is the latest version with some faces painted.