I have solved the problem! The problem was caused by winxp ics, which doesnot explicitly specify the ip address of the home netcard, 192.168.0.1. In case other people may find it useful, I summarize what I did in the following.

On the winxp ics server side:
Right click the home netcard > properties, CHECK "Internet Protocol (TCP/IP)", then click on properties > check "Use the following IP address" and input 192.168.0.1 as ip, and
255.255.255.0 as subnet mask, other fields are left blank.

On the knoppix client side:
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0 up
# route add default gw 192.168.0.1 eth0
# echo nameserver 192.168.0.1 >> /etc/resolv.conf

It then worked on the knoppix machine!

By default, the winxp ics set the home netcard's ip implicitly, hence, the "Internet Protocol (TCP/IP)" entry was not checked, but a windows client somehow knows it. I could see that after I input explicitly ip address for the home netcard, the knoppix ping immediately got responses.

A third machine running windows xp can still share the internet access after I made this change.

My thanks to all people who helped.