some proteins are pre-attached ligands or metal with them in their crystal structure. so is it necessary to remove that non-standard molecule before performing docking?
If the ligand in the structure is occupying the site to which you are docking, then of course it must be removed. If it is occupying another site, then you should consider whether there might be conformational changes in the structure caused by that ligand, which could affect the docking. This would be the case, for example, if there is an allosteric modifier bound to the protein.
If the metal ion is part of the active site, then you will get very different docking results depending on whether it is there or not. Think about whether the metal is normally present under physiological conditions, and how tightly it is bound. You might want to search for ligands that bind in place of the metal, or you might want to take advantage of the metal to find ligands that interact with it.
Some metal ions are structural and should not be removed because they are an integral part of the protein structure.
Yes, it's always good to remove any ligand attached to your protein of interest to avoid any misinterpretation. If the ligand is attached to the active site, then it is obvious to remove it from there. If the ligand is present at some other site than the active site; then there are chances of conformational alternation of the active site which will lead to false negative results.