There are many things to check:
1. Match speed/duplex on all physical connections. A number of lousy network performance problems are traced to mismatched duplex between a server and a switch (half-duplex on one end, full-duplex on the other), such as after a power outage or rebooting a server. Auto-negotiation with network devices is similar to auto-negotiation with used-car salesmen. Set a fixed speed and full-duplex on each end of each connection you control (assuming each device supports full-duplex).
2. Check that your DS-3 connection really is a full DS-3. You may have a physical DS-3, but may only be paying for some fraction of the 45 megabit/second bandwidth. Is this a point-to-point DS-3 between the two sites, or is each site a DS-3 tail circuit into a virtual network cloud supporting multiple sites (frame-relay, ATM, MPLS, or something else), or are these DS-3 internet connections at each end? And if you are paying for a fractional DS-3, what happens when you exceed your subscribed bandwidth -- are you allowed to burst above the subscribed level or are your extra packets dumped?
3. Test your file transfer throughput at various times. Is the sysadmin kicking off this XCOPY with a scheduled script? Are other backup scripts running at the same time that run across the WAN?
4. Check that your gigabit switch is really a gigabit switch. Many vendors, including Cisco, sell switches that will connect to end stations at gigabit speed, but share electronics between multiple ports on the switch. The result is 'oversubscription' -- one station can sustain 1 gigabit/second throughput, as long as every other port on the same switch is doing practically nothing.
5. Try a less chatty transfer protocol. I remember using XCOPY on a drive letter mapping means you are using NetBIOS tranport on TCP (NBTCP). If you use Ethereal or another packet capture tool to sample the transfer, you'll may see your server only transfers three or four successive packets before expecting an ACK from the receiver. If you use ftp, a larger window may be negotiated, and your server may send more packets in a row before an ACK is required.
5. Work with your network folks to collect stats from the near-end and far-end routers to get an idea of how much of the WAN bandwidth is being used by your transfer, and how congested your WAN connection becomes while making this transfer. Read up on 'ip accounting' from Cisco IOS documentation, and see if a computer running MRTG can poll the routers via SNMP to generate some useful graphs on the bandwidth usage on the link, and if it pegs at a particular level.
6. One last possibility deals with jumbo frames. If your server and gigabit switch support jumbo frames, are they fragmented when they are sent across the WAN? If so, do all of your network control points support fragmented frames?
"Latency is not your friend" -- even if you have a full DS-3, if it takes a sizable fraction of a second to reach from near-end to far-end, you may spend a significant amount of time waiting for ACKs before your server sends more data. A fatter pipe won't fix high latency.