Edit: This question has been reworded as much as possible from the original to try to make it a question about Japanese. Also, adding the IME単漢字辞書 fixed the IME problem (thanks to Tsuyoshi Ito for pointing that out). Quote about 単漢字辞書:
Microsoft IME単漢字辞書には、マクロソフトで読みが確認できたJIS第三・第四水準漢字が登録されています. However, it looks like 鎗 is part of JIS第一水準漢字, so I still don't understand that part.
If I look in the dictionary, やり has three versions: 槍／鎗／鑓 (I understand they are not standard).
When I type やり, my windows IME shows me the following:
Why is 鎗 not on the list? It seems 鎗 is considered to be different than 槍 and 鑓. What is special about the character 鎗?
CLARIFICATION ON ENCODINGS AND IME DICTIONARIES
MS IMEs 標準辞書 is based on jis x 0208 which includes JIS第1水準漢字 and JIS第2水準漢字. 鎗 is part of JIS第1水準 and this is why it comes out why you type そう with the default dictionary on MS IME. 単漢字辞書 is a separate dictionary based on JIS X 0213 which includes 第3水準漢字 and 第4水準漢字, if you add it, it shows 鎗 in the 変換リスト when you type やり. Now, why exactly this behavior occurs to me is a mystery (perhaps its just a bug), but I know that other dictionaries for other non-microsoft IMEs do not exhibit this behavior. I am assuming this is because they include all characters in the BMP and do not divide things up according to shift-jis taxonomy. Also, perhaps the dictionary implementors decided that 鎗 is 異体字, so they left it out.