Many OpenGL drivers will internally break up POLYGON shapes into triangles. Try using QUADS instead.
Code:
viz.startLayer(viz.QUADS)
viz.vertexColor(viz.GREEN)
viz.vertex(0.0,0.0,0.0)
viz.vertex(0.5,0.0,0.0)
viz.vertex(0.5,1.0,0.0)
viz.vertex(0.0,1.0,0.0)
viz.vertex(0.5,0.0,0.0)
viz.vertex(0.6,0.0,0.0)
viz.vertex(0.6,1.0,0.0)
viz.vertex(0.5,1.0,0.0)
viz.vertex(0.6,0.0,0.0)
viz.vertex(1.0,0.0,0.0)
viz.vertex(1.0,1.0,0.0)
viz.vertex(0.6,1.0,0.0)
target=viz.endLayer()
target.dynamic()
target.setVertexColor(5,[0,0,1,0.2])
target.setVertexColor(6,[0,0,1,0.2])
target.setVertexColor(8,[0,0,1,0.2])
target.setVertexColor(11,[0,0,1,0.2])
Depending on your needs, you might be able to just use an alpha texture on a single quad to achieve the transparency.