Patience and best of luck!
It's late for you, but for others reading this post, if you're going to purchase a foreclosure, a buyer's agent is a good way to go. If you haven't purchased a foreclosure before, or a short-sale, or for that matter, just a traditional sale, there's a lot of things that you don't have experience with - and that inexperience can lead to a lot of needless anxiety. I inform my buyers about bank involved properties that they are HORRIBLY slow, and we do what we can to enforce open communication with the bank (Generally I put communication clauses in the offer to purchase). It's hard to know if your experience is typical or atypical if you don't have any benchmark to compare it to, or previous experience to fall back on. As others have mentioned, your experience is normal, at least to this point, and the extra time you are spending waiting around is part of the reason why not everyone buys foreclosure properties, and one of the reasons they sell below market.
With that said, the bank accepts your offer than tells you you have to close in 3 weeks. Many times the bank is not ready and delays the closing. A month delay is not unusual but several months would be. Ask your agent or attorney what is causing the delay. Most likely the bank is flooded with foreclosures and they are just trying to get through their mess.
Most banks are not local and are swamped with these foreclosure cases. Questions that come to mind are, were all the foreclosure papers filed? Was the title clean? Is this a condo? Are there back taxes? There are a number of issues that the bank may need to settle and the more there is, the more the delay because banks aren't known to act fast unless they have local representation.
You shouldn't be in the dark about the process, your attorney and/or your agent (or perhaps the listing agent and bank's attorney) should be able to provide you with information regarding the delay. As long as the delay is on the banks' side ... you aren't getting penalized ... you just have to be patient.