Python - 249
The second for loop is indented with tab
S=map(int,raw_input().split())+[0]
for y in range(max(S),min(S)-1,-1):
q=r=e=" "*4
for x in S:
w=x*(x<0);z=x*(x>0)
if w<=y<z:r=r[:-3]+"| | |";q=q[:-3]+"|___|/"+" |"[y>w]
elif(y==z)*x:q=q[:-2]+"/__ /|";r+="__ "
else:q+=e;r+=e
print r+"\n"+q
Python - 393
S=map(int,raw_input().split())+[0]
for Y in range(max(S),min(S)-1,-1):
Q=R="";B=s=t=" "*4;N=0
for y in S:
if(y>0)*(y==Y)+(Y==0)*(y<0):
q="_ _";r=" /__";s="_ ";t=" /| "
if(N<y>0)+(N==0):q=" _"
if y<N>0:q="| |_";r="|/__"
elif(y>Y>=0)+(y<=Y<0):q="| ";r="|___";s="| | ";t="|/"+("| "[(y==Y<0)+(Y==0)])+" "
else:q=s;r=t;s=t=B
Q+=q;R+=r;N=y
print Q.rstrip()+"\n"+R.rstrip()