One method of seeing if its your service provider or not is to do a dcc in house, from one internal Ip to the Other,
u can normally set the IP of the sender to its LAN ip by using /LOCALINFO -h
then send from it to the other pc, using a standard dcc send (obviously they both needed to be connected to a irc server)
If this sends fine, then the problem is either in your router or your ISP, since the recieving pc well get the IP of your sending machine as lets say 192.168.0.1 and its 192.168.0.2 and thus wont need to go out of your lan to connect to it.
PS: I doubt your ISP has somehow blocked you from recieving files, some of them may well try and block u from sending them (or at least make it more difficult to sort it out)
One other thing is worth doing on both machines do a /DEBUG @debug
(dont be in channels when do this as it lists all traffic you send and get)
Then when one does a send you well see a message like....
-> crazy.criten.net NOTICE RecieverNick
CC Send filename (1.2.3.4)
-> crazy.criten.net PRIVMSG RecieverNick :DCC SEND filename 16909060 5062 467261
and the one the does the get well see....
<- :SenderNick!~SenderID@1.2.3.4 NOTICE RecieverNick
CC Send filename (1.2.3.4)
<- :SenderNick!~SenderID@1.2.3.4 PRIVMSG RecieverNick :DCC SEND filename 16909060 5062 467261
16909060 is a long ip for 1.2.3.4 so well match the ip used of the sender WAN or LAN instead of this number shown
5062 is a port number used to send the file, so well match your settings
467261 is the file size, so well match the file size
The one to look for is if a PORT value has changed between the send and the get ends, this normally means a Router is using some type of NAPT (network address port translation) settings in the NAP/Forwarding tables. This I however have never seen stoping you recieving files.